实验一 线性表的顺序存储与实现_数据结构篇之单链表的创建以及实现
上次咱們已經一起分享了線性表的順序存儲的基本創建以及一些運算方法的實現,那么這次咱們主要來研究線性表的鏈式存儲,俗稱單鏈表,咱們知道順序表在建立的時候要注意需要建立一塊連續的空間,所以需要使用數組在內存中開辟空間,但是有個問題,當數據很多時,就需要建立一大塊連續的空間,內存中空間是有限的。建立連續的空間可能會影響到其他程序的使用,并且在運算當中,插入數據或者是刪除數據會造成數據的成片移動,回消耗大量的時間,單鏈表就會很好的解決這個問題。
將線性表L=(a0,a1,……,an-1)中各元素分布在存儲器的,不同存儲塊,稱為結點,通過地址或指針建立它們之間的聯系,所得到的存儲結構為鏈表結構。表中元素ai的結點形式如圖所示。
其中,結點的data域存放數據元素ai,而next域是一個指針,指向ai的直接后繼ai+1所在的結點。于是,線性表L=( a0,a1,……,an-1)的結構如圖所示。
(1)定義結點結構體 linklist_t
定義一個結構體,每一個結構體表示一個節點,節點里面包含要存儲的數據以及指向下一個節點的指針。這樣通過找尋下一個節點的地址來將數據聯系在一起。
(2)創建一個鏈表 linklist_create( )
(3)頭插法插入數據 linklist_head_insert( )
(4)打印數據 linklist_show( )
(5)判斷鏈表是否為空 linklist_empty( )
(6)頭刪法刪除數據 linklist_head_delete( )
定義一個指針,指向要刪除的節點,主要是為了能夠臨時保存數據,然后進行指針指向的改變,最后釋放指針,并將指針置為空。
(7)指定數據刪除 list_delete_value( )
(8)尾插法插入數據 linklist_tail_insert( )
(9)按照順序插入數據(自帶排序功能) linklist_sort_insert( )
(10.1)按照指定位置插入 linklist_pos_insert( )
(10.2)將數據倒置 linklist_recover( )
例如將5 4 3 2 1排成1 2 3 4 5:
定義兩個指針p、q,q指向被插入的數據,p指向q的下一個數據,當每次q插入時,p q往后移動
(11)更改數據 list_replace( )
(12)查找數據位置 list_search( )
(13)數據排列 list_merge( )
鏈表1數據1 2 5 7
鏈表2數據1 3 6 8
將其合成一個鏈表 1 1 2 3 5 6 7 8
創作不易,點贊+關注哦!!!
總結
以上是生活随笔為你收集整理的实验一 线性表的顺序存储与实现_数据结构篇之单链表的创建以及实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搭建云计算机win10,win10电脑做
- 下一篇: ajax 跨站返回值,jquery aj