数据结构论坛

首页 » 分类 » 常识 » 带你认识数据结构单链表的建立
TUhjnbcbe - 2025/5/6 16:21:00
北京哪家医院能治好白癜风 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/xcxbdf/

#数据#在文章中,作者介绍了线性链表的查找操作。

在本篇文章中,作者将介绍如何建立一个单链表。

其实,可以通过两种方式去建立一个单链表,它们分别是头插法和尾插法。

顾名思义,头插法就是每一次都在单链表的头部插入一个元素,如此循环,形成一个单链表。

而尾插法指的是每次都在单链表的尾部插入一个元素,循环插入从而形成一个单链表。

接下来我们就来看一看这两种方法是如何用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;

}

本篇文章到此就结束了,如果大家有什么想要了解的,可以

1
查看完整版本: 带你认识数据结构单链表的建立