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

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

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

从尾部插入节点

从尾部插入节点从尾部插入节点
  如上图所示,只要将创建的节点的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.\n",pHeader->data);
17    printf("node2 data: %d.\n",pHeader->pNext->data);
18    printf("node2 data: %d.\n",pHeader->pNext->pNext->data);
19}

什么是头节点

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

有无头节点有无头节点
posted @ 2019-01-02 20:13  天星小苑  阅读(636)  评论(0编辑  收藏  举报