单链接表的实现之从尾部插入节点

Posted ywx123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链接表的实现之从尾部插入节点相关的知识,希望对你有一定的参考价值。

(二)单链接表的实现之从尾部插入节点

从尾部插入节点构建一个简单的列表什么是头节点

从尾部插入节点

技术分享图片从尾部插入节点
??如上图所示,只要将创建的节点的pNext指针指向下一节点地址即可:pHeader->pNext = New;
??从尾部插入节点分成两个步骤:

 

  • 找到链表的最后一个节点;
  • 将新的节点和原来的最后一个节点链接起来。
 1/*
2 *pH : 表示链表的头指针
3 *new: 新节点的首地址
4 */

5void insert_tail(struct node *pH,strtuct node *new)
6
{
7    struct node *p = pH;        //node定义 见上一章节
8    while(NULL != p -> pNext)
9    {
10        p = p -> pNext;
11    }
12    p -> pNext = new;
13}

构建一个简单的列表

 1#include <stdio.h>
2#include <string.h>
3#include <stdlib.h>
4struct node
5{

6    int data;
7    struct node *pNext;
8};
9struct node *create_node(int data);//实现见上一章
10void insert_tail(struct node *pH,strtuct node *new);
11int main()
12
{
13    struct node *pHeader = create_node(1);
14    insert_tail(pHeader ,create_node(2));
15    insert_tail(pHeader ,create_node(3));
16    printf("node1 data: %d. ",pHeader->data);
17    printf("node2 data: %d. ",pHeader->pNext->data);
18    printf("node2 data: %d. ",pHeader->pNext->pNext->data);
19}

什么是头节点

??链表把头指针指向的第一个节点作为头节点使用。头节点有两个特点:它紧跟在头指针后面;头节点的数据部分是空的(或者存储链表节点数),指针部分指向第一个有效节点。
??头节点和其他节点不同,头节点在创建头指针时一并创建并和头指针关联起来。后面真正的节点用节点添加函数添加。
??链表的头节点不是必须的。有无头节点在一些算法处理上有些不同。比如插入节点、删除节点、遍历节点。

技术分享图片有无头节点




































以上是关于单链接表的实现之从尾部插入节点的主要内容,如果未能解决你的问题,请参考以下文章

用Python实现单链表的头插,尾插和中插

链表插入排序——单指针移动

优先级队列实现为单链接未能在插入时更新指针引用

[死磕 Spring 17/43] --- IOC 之从单例缓存中获取单例 bean

死磕 Spring----- IOC 之从单例缓存中获取单例 bean

双链表的结构和插入节点