编程实现一个单链表节点的插入

来源:互联网 发布:网络爬虫 useragent 编辑:程序博客网 时间:2024/04/30 01:25

【解析】:

      向单链表中某个位置处(第pos个节点)之后插入节点, 这里分为插入到链表首部、插入到链表中间,以及链表尾端3种情况。

//在单链表pos位置处插入节点,返回链表表头指针//pos从0开始计算,0表示插入到head节点后面node *insert_node(node *head, int pos, int data){    int i = 0;    node *item = NULL;    node *p = head->next;        item = (node *)malloc(sizeof(node));        //新建一个节点item    item->data = data;    if(pos == 0)                                //插入到链表头后面    {        head->next = item;                      //head后面是item        return head;    }    while(i < pos -1)                           //通过循环定位到要插入那个节点之前    {        p = p->next;        ++i;    }        item->next = p->next;           //item指向原pos节点的后一个节点    p->next = item;                 //把item插入到pos的后面        return head;    }

摘自《C和C++程序员面试秘笈》

阅读全文
0 0
原创粉丝点击