性表链式存储链式结构的特点点是有序性和均匀性


(1)单链表:当链表中的每个结點只含有一个指针域时称为单链表。

(2)头指针:如上图所示链表中第一个结点的存储位置叫做头指针。

(3)头结点:头结点是放在苐一个元素结点之前的结点头结点不是链表中的必须元素,其数据域一般无意义(有些情况下会存放链表的长度,或用作监视哨等)本攵的头结点存放了链表的长度。有了头结点后对在第一个元素结点前插入结点和删除第一个结点,其操作与对其它结点的操作统一了

(4)首元结点:就是第一个元素的结点,它是头结点后边的第一个结点

(1)初始化:给链表添加一个头结点。

(2)逆置链表:将单链表所有元素逆置

(3)链表遍历:打印出链表的长度,并按顺序打印所有元素

(4)查找:获取指定位置的元素。

(5)元素插入:在指定位置插入元素

(6)元素删除:删除指定位置的元素。

(7)删除链表:将链表删除

(8)头插法创建链表:用头插法插入一系列元素,创建鏈表

(9)尾插法创建链表:用尾插法插入一系列元素,创建链表

(10)快慢指针:利用快慢指针法的原理,快速查找一个长度未知的链表的中间结点

这些操作中,链表逆置具有一定的难度其基本的设计思想是:将以前的旧链表中的每个元素从旧链表中删除,并用头插法插入新的链表中

快慢指针的设计也非常巧妙,快指针运动速度是慢指针的两倍因此快指针指向最后一个结点的时候,慢指针刚好指姠中间结点

3.单链表编程实现----C语言

在C语言中函数和数据是分开的,每个函数都需要考虑链表的数据传递问题这大大加大了编程的难度。


  
 cur=cur->Next;//舊链表的头结点被删除(赋给了新的头结点)

  

 List();//链表可以删除所有动态节点
 int findMiddle(ElemType& e);//查找中间结点,将查找的元素值赋给e并返回该节点是第几个結点,如果是空表则返回0
 head->data=0;//头指针的数据域也不要浪费:用来存放链表长度
 *这个程序是原始版本的程序这个程序的思路更加清晰,下面一個程序是改进的程序代码更加简洁。
 cur=cur->next;//旧链表的头结点被删除(赋给了新的头结点)
 head= newhead;//这一步是多余的因为新头和旧头都是指向同一位置,其实newhead是一个多余变量直接用head也是可以完成任务的。
 cur=cur->next;//旧链表的头结点被删除(赋给了新的头结点)

  

我要回帖

更多关于 链式结构的特点 的文章

 

随机推荐