赞
踩
注意:在初始化单链表的时候,分辨与区分有无头结点的关键是,是否为头结点申请了一个空间,并且头指针指向这个头结点。
并且带头结点的单链表的 空表判断为 L->next==NULL
而不带头结点的单链表的 空表判断为 L==NULL
例如:
一、 头插法
即,逆序输入,正序输出。
头插法示意图
关键步骤:
s->next = L->next;
L->next = s;
- #include<stdio.h>//头插法建立链表。逆序输入,正序输出。
- #include<stdlib.h>
-
- typedef int ElemType;
- typedef struct LNode{
- ElemType data; //数据域
- struct LNode *next; //指针域
- }LNode,*LinkList;
- //LNode*是结构体指针,并且与LinkList完全等价
- void list_head_insert(LinkList &L)
- {
- L = (LinkList)malloc(sizeof(LNode)); //申请头结点空间,L为头结点,并且头指针指向头结点
- L->next = NULL; //为了让最后一个结点的指针域为空
- ElemType x; //要插入的数据元素
- scanf("%d",&x);
- LNode *s;
- while(x != 999) //输入的终止条件为999
- {
- s = (LinkList)malloc(sizeof(LNode)); //再为插入元素,申请一个结点空间。
- s->data = x; //将数据元素放入数据域
- s->next = L->next; //s的next指向原本链表的第一个结点
- L->next = s; //头结点的next,指向新结点
- scanf("%d",&x);
- }
- }
-
- void print_list(LinkList L)
- {
- L = L->next;
- while(L != NULL)
- {
- printf("%3d",L->data);
- L = L->next;
- }
- printf("\n");
- }
-
-
- //头插法新建链表
- int main()
- {
- LinkList L; //L是头指针
- list_head_insert(L); //输入数据可以为数据
-
- print_list(L);//链表打印
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
二、尾插法
即,正序输入,正序输出。
关键步骤:
r->next = s;
r = s;
- #include<stdio.h>//尾插法建立链表。正序输入,正序输出。
- #include<stdlib.h>
-
- typedef int ElemType;
- typedef struct LNode{
- ElemType data; //数据域
- struct LNode *next; //指针域
- }LNode,*LinkList;
-
-
- void list_tail_insert(LinkList &L)
- {
- L = (LinkList)malloc(sizeof(LNode));
- L->next = NULL;
- ElemType x;
- scanf("%d",&x);
- LNode *s;//用来指向申请的新结点
- LNode *r=L;//r始终指向链表尾部
- while(x != 999)
- {
- s = (LinkList)malloc(sizeof(LNode));
- s->data = x;
- r->next = s; //r->next指向s结点
- r = s; //r要指向新的尾部
- scanf("%d",&x);
- }
- r->next = NULL; //让尾结点的next为NULL
- }
-
-
- void print_list(LinkList L)
- {
- L = L->next;
- while(L != NULL)
- {
- printf("%3d",L->data);
- L = L->next;
- }
- printf("\n");
- }
-
-
- //尾插法新建链表
- int main()
- {
- LinkList L; //L是头指针
- list_tail_insert(L); //输入数据可以为数据
-
- print_list(L);//链表打印
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。