单链接表的实现之从尾部插入节点
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}
什么是头节点
??链表把头指针指向的第一个节点作为头节点使用。头节点有两个特点:它紧跟在头指针后面;头节点的数据部分是空的(或者存储链表节点数),指针部分指向第一个有效节点。
??头节点和其他节点不同,头节点在创建头指针时一并创建并和头指针关联起来。后面真正的节点用节点添加函数添加。
??链表的头节点不是必须的。有无头节点在一些算法处理上有些不同。比如插入节点、删除节点、遍历节点。
以上是关于单链接表的实现之从尾部插入节点的主要内容,如果未能解决你的问题,请参考以下文章
[死磕 Spring 17/43] --- IOC 之从单例缓存中获取单例 bean