日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三.线性表

發布時間:2024/9/30 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三.线性表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

線性表(List):零個或者多個數據元素的有限序列
有且只有一個直接前驅元素,有且只有一個直接后繼
線性表元素的個數n(n>0)定義為線性表的長度,當n=0時,稱為空表

在較復雜的線性表中,一個數據元素可以由若干個數據項組成

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

一維數組來實現順序存儲結構.
數組的長度和線性表的長度的區別?
數組的長度是存放線性表存儲空間的長度,存儲分配后這個量一般是不變的.
線性表的長度是線性表中數據元素的個數,(插入/刪除)這個量是變化的
在任何時刻,線性表的長度應該小于等于數組的長度

存儲器中的每個存儲單元都有自己的編號,這個編號稱為地址

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

線性表的鏈式存儲結構:為了表示每個數據元素ai和其直接后繼元素ai+1之間的邏輯關系,對數據元素ai來說,除了存儲其本身的信息之外,還需存儲一個指示其直接后繼的信息(即直接后繼的存儲位置).我們把存儲數據元素的信息的區域成為數據域,把直接存儲直接后繼位置的域稱為指針域.指針域中存儲的信息稱作指針或鏈.這兩部分信息組成數據元素ai的存儲映像,稱為結點(Node)

n個結點鏈接成一個鏈表,即為線性表的鏈式存儲結構.因為此鏈表的每個結點中只包含一個指針域,所以叫做單鏈表

頭指針:鏈表中第一個結點的存儲位置
頭結點:在單鏈表的第一個結點前附設一個結點(為了方便對鏈表操作)
區別?
頭指針是指鏈表指向第一個結點的指針,如果鏈表有頭結點,則指向頭結點的指針
頭指針具有標識作用,所以常以頭指針冠以鏈表的名字
無論鏈表是否為空,頭指針都不為空,頭指針是鏈表的必要元素

頭結點是為了操作的統一和方便而設立的,放在第一元素的結點之前,其數據域一般無意義(也可存放鏈表長度)
有了頭結點,對在第一個元素結點前插入結點和刪除第一結點,其操作和其他結點的操作就統一了
頭結點不一定是鏈表必須要素

單鏈表和順序存儲結構的區別:
存儲分配方式:
順序存儲結構用一段連續的存儲單元依次存儲線性表的數據元素
單鏈表采用鏈式存儲結構,用一組任意的存儲單元存放線性表的元素

時間性能:
查找:順序存儲結構O(1)單鏈表O(n)
插入和刪除:順序存儲結構需要平均移動一般的元素,時間為O(n)單鏈表在找出某位置的指針后,插入和刪除時間僅為O(1)

空間性能:
順序存儲結構需要預分配存儲空間,分大了浪費,分小了易發生上溢
單鏈表不需要分配存儲空間,只要有就可以分配,元素個數也不受限制

靜態鏈表:用數組描述的鏈表(游標實現法)

循環鏈表:將單鏈表的終端節點的指針端由空指針改為指向頭結點,就使整個單鏈表形成一個環,這種頭尾相接的單鏈表稱為單循環鏈表,簡稱循環鏈表

雙向鏈表:在單鏈表的每個結點中,再設置一個指向其前驅結點的指針域

總結

以上是生活随笔為你收集整理的三.线性表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。