单链表快速尾部插入-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 752902
  • 博文数量: 144
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1150
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-17 14:32
个人简介

小公司研发总监,既当司令也当兵!

文章分类

全部博文(144)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2018-06-06 14:27:51

数据结构:
struact node {
    struct node * next;
    // other members
};

struct node_head {
    struct node *head;
    struct node **tail; // 注意这里的二重指针
};

// init
static struct node_head g_head;
g_head.head = null;
g_head.tail = &(g_head.head);

void mlist_add(struct node_head *phead, struct node *node)
{
    node->next = null;
    *(phead->tail) = node;
    phead->tail = &node->next;
}

如上面示例代码,该方法在内核中使用较为普遍。原理就是通过维护一个头结点,来分别指向单链表的头部和尾部指针,方便在尾部插入新结点而避免遍历查找尾指针。

另外,单链表通常采用头插法来避免遍历。
阅读(3061) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图