#数据#在文章中,作者介绍了线性链表的查找操作。
在本篇文章中,作者将介绍如何建立一个单链表。
其实,可以通过两种方式去建立一个单链表,它们分别是头插法和尾插法。
顾名思义,头插法就是每一次都在单链表的头部插入一个元素,如此循环,形成一个单链表。
而尾插法指的是每次都在单链表的尾部插入一个元素,循环插入从而形成一个单链表。
接下来我们就来看一看这两种方法是如何用c++代码实现的:
1,首先我们来看尾插法:
LinkListList_TailInsert(LinkListl){
intx;
l=(LinkList)malloc(sizeof(Node));//首先初始化一个指针l
LinkLists,r=l;//定义两个LinkList型的变量,s用来表示新插入的结点,r则指向该链表的最后一个结点
scanf("%d",x);//输入所要插入的数据x
while(x!=){//如果输入了则代表用户希望结束单链表的建立
//TODO
s-data=x;
r-next=s;//将最后一个元素的next指针指向s,即在最后一个元素后插入s
r=s;//将s变为最后一个元素
scanf("%d",x);//继续插入元素
}
r-next=NULL;//如果链表建立完成,将最后一个元素的next指针指向空
returnl;
}
2,接下来是头插法:
头插法的实现其实就是每一次都对头节点进行后插操作,以下是c++代码:
LinkListList_HeadInsert(LinkListl){
intx;
l=(LinkList)malloc(sizeof(Node));
l-next=NULL;//将头指针指向空,防止脏数据的出现
LinkLists;
scanf("%d",x);
while(x!=){
//TODO
s-data=x;//将x放入s中
s-data=x;//将x放入s中
s-next=l-next;//将s指向原先l指向的下一个结点,即在头部插入一个结点
l-next=s;//将l的next指针指向s
scanf("%d",x);
}
returnl;
}
本篇文章到此就结束了,如果大家有什么想要了解的,可以