數據結構和算法(4)線性表

1、線性表:由零個或多個數據元素組成的有限序列,零個元素是空表
2、線性表的關鍵:是一個序列、元素之間有先來後到、若元素存在多個,則第一個元素無前驅、最後一個元素無後繼,其他元素有且只有一個前驅和後繼、線性表強調是有限的
3、抽象數據類型的標準格式
在這裏插入圖片描述
4、線性表Operation:LnitList(*L)、ListEmpty(L)、ClearList(L)、GetElem(L,ie)、LocateElem(L,e)、ListInsert(*L,i,e)、ListDelete(*L,i,&e)、ListLength(L)

5、線性表的順序存儲結構:用一段地址連續的存儲單元依次存儲線性表的數據元素

6、線性表順序存儲結構的優缺點
優點:無須爲表示表中元素之間的邏輯關係而增加額外的存儲空間、可以快速地存取表中任意位置的元素
缺點:插入和刪除操作需要移動大量元素、當線性表長度變化較大時,難以確定存儲空間的容量、容易造成存儲空間的碎片

7、線性表的鏈式存儲結構的特點:用一組任意的存儲單元存儲線性表的數據元素,這組存儲單元可以存在內存中未被佔用的任意位置

8、存儲數據元素的域稱爲數據域,存儲後繼位置的域稱爲指針域;指針域中存儲的信息稱爲指針或者鏈,這兩部分信息組成數據元素稱爲存儲印象,稱爲結點

9、頭指針與頭結點的異同
頭指針:頭指針是指向鏈表第一個結點的指針,若鏈表有頭節點,則是指向頭節點的指針、頭指針具有標識的作用,常用頭指針冠以鏈表的名字、無論鏈表是否爲空,頭指針均不爲空、頭指針是鏈表的必要元素
在這裏插入圖片描述
頭指針必須有、頭結點不一定要有

10、單鏈表圖例
在這裏插入圖片描述
a1是第一個結點
空間表圖例
在這裏插入圖片描述

11、單鏈表的讀取算法思路
(1)聲明一個結點p指向鏈表第一個結點,初始化j從1開始
(2)當j>i時,就遍歷鏈表,讓p的指針向後移動,不斷指向下一結點,j+1
(3)若到鏈表末尾p爲空,則說明第i個元素不存在;
(4)否則查找成功,返回結點p的數據

12、單鏈表的插入是否可以交換順序
在這裏插入圖片描述
不可交換

13、單鏈表第i個數據插入結點的算法思路
在這裏插入圖片描述
14、單鏈表第i個數據刪除結點的算法思路
在這裏插入圖片描述
15、單鏈表整表創建得算法思路
在這裏插入圖片描述
16、頭插法建立單鏈表
就是把新加進的元素放在表頭後的第一個位置
在這裏插入圖片描述
17、尾插法建立單鏈表
把新節點插到最後

18、單鏈表整表刪除的算法思路
聲明結點p和q;
將第一個結點賦值給p,下一結點賦值給p
循環執行釋放p和將q賦值給p的操作
19、單鏈表結構與順序存儲結構優缺點
從存儲分配方式、時間性能、空間性能三方面來做對比
存儲分配方式
在這裏插入圖片描述
時間性能
在這裏插入圖片描述
空間性能
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章