《数据结构》-头插法建立单链表

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Leabharlann Baidu
图2-6 新结点前插
图2-7 头指针指向新结点
重复进行第②步到第⑥步,便可建立一个含有多个结点的 不带头结点的单链表,如图2-8。
head s
d
c
b
a^
图2-8 头插法建单链表
04
0.5
05
头插法建立单链表
具体算法:
LinkList CreatListF(void)
{//头插法建立单链表
DataType ch;
}
s->data=ch;
//输入的数据写入结点数据域
s->next=head; //将新结点*s插入链表的前面
head=s;
//头指针指向新结点
}
return head;
}
THANKS
LinkList head;
ListNode *s;
head=NULL;
printf("请输入链表各结点的数据(字符型):\n");
while((ch=getchar())!='\n')
{
s=(ListNode *)malloc(sizeof(ListNode ));
if(s==NULL)
{
printf("申请存储空间失败!");return head;
算法步骤:
①将头指针head置为
②读取字符ch,判断ch与'\n'是否不相
NULL,转向②。如图2-3。 等,若是转向③,否则,返回head。
③生成一个新结点*s(即由
s指向),转向④。如图2-
4。
head
s
^
④将ch写入新结点*s数据域,转向⑤。
如图2-5。
s
a
图2-3 头指针
图2-4 新结点s
图2-5 值写入数据域
2020
数据结构
Data structure
头插法建立单链表
讲授:XXX
0.5 头插法建立单链表
要 假三设求、线:性链表表中的结插点入的数据类型是字符型,逐个输入这些字符,并以换行符‘\n’作为输入结束的条
件,使用头插法动态地建立单链表(不带头结点)。
算法思路:
从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结 点插入到当前链表的表头上,直到读入换行符'\n'为止。
03
0.5 头插法建立单链表
5 ⑤将新结点*s插入链表的前面(第1个重 复进行第②步到第⑥步,便可建立一个
含有多个结点的不带头结点的单链表, 如图2-8。 结点时是将*s指针域置为NULL),转向 ⑥。如图2-6。
头插法建单链表
⑥将头指针指向新结点,转向②。
6 如图2-7。 s
a^
head s
a^
相关文档
最新文档