最近通過刷題,對線性表有了更為深刻的了解,為了防止自己忘記,決定整理一下所碰到的知識點,留待複習回顧。
重要概念:
1.結點
2.頭指標和頭結點有什麼聯絡和區別?
頭指標:指向第乙個結點的指標為頭指標。
頭結點:當有頭結點時,該結點的資料域可以不儲存任何資訊,頭結點的指標域指向第乙個結點。
在有頭結點的情況下,頭指標指的是指向頭結點的指標。當沒有頭結點時,頭指標指的是指向第乙個結點的指標。
3.有頭結點和無頭結點有什麼不同,設定頭結點的動機是什麼?
這個問題是基於第2個問題提出的,設定頭結點的作用有兩個:主要使得插入和刪除等操作統一,在第乙個元素之前插入元素和刪除第乙個結點不必另作判斷。另外,不論鍊錶是否為空,鍊錶指標不變。
對上面這段具體解釋是:以無頭結點情況下單鏈表的刪除操作為例,如果要刪除的是第乙個結點,那麼頭指標要指向後面的結點,同時將後乙個結點的指標域指向前乙個結點。如果刪除的不是第乙個結點,那麼頭指標不用修改,只需要將後乙個結點的指標域指向前乙個結點。所以刪除的時候,會因為要刪除的位置不同,而產生兩種不同的情況。為了使兩種情況統一,因此增加了頭結點。這樣,頭指標指向了頭結點,就不會被修改,刪除的時候也不會出現需要討論的情況。 插入時的情況也是一樣。
總的來說:你可以沒有頭結點,但是在進行各種插入刪除等操作時,要仔細考慮所有的可能情況。
4.什麼是單迴圈鍊錶,和單鏈表有什麼不同?
單迴圈鍊錶是一類特殊的單鏈表,它指的是在單鏈表中將終端結點的指標域null改為指向表頭結點。
5.取線性表的第i個元素的時間同i的大小有關嗎?
不一定。
線性表在鏈式儲存時,查詢第i個元素的時間同i的值成正比,而在順序儲存時,查詢第i個元素的時間與i的值無關。
6.根據線性表的鏈式儲存結構中每乙個結點包含的指標個數,將線性鍊錶分成單鏈表和多重鍊錶;而又根據指標的連線方式,鍊錶分為動態鍊錶和靜態鍊錶。
7.線性表的邏輯關係是指線性表的資料元素之間存在著線性關係,順序儲存結構是通過物理上相鄰來表示元素之間關係的,而鏈式儲存結構是通過指標來表示元素之間關係的。順序儲存結構用一維陣列來表示,給定下標,可以訪問相應元素,屬於隨機訪問的儲存結構。需要注意的是,儘管「只要知道某結點的指標就可以訪問該元素」,但因煉表掉的訪問都需要從頭指標開始,順鏈而下,因此鍊錶不屬於隨機訪問結構。
8.順序儲存結構不僅僅可以儲存線性結構,還可以存放非線性結構,如二叉樹。
資料結構學習筆記 線性表
線性表是零個或多個資料元素的有限序列。線性表的資料物件集合為。其中,除第乙個元素a1外,每乙個元素有且只有乙個直接前驅元素,除了最後乙個元素an外,每個元素有且只有乙個直接後繼元素。資料元素之間的關係是一對一的關係 線性表的順序儲存結構指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。簡單的說...
資料結構學習 線性表
線性表一般分為順序結構和鏈式結構。順序表裡面元素的位址是連續的,如陣列 鍊錶裡面節點的位址不是連續的,是通過指標連起來的,如單鏈表 順序結構 優點 易於查詢,索引快 list n 這樣的操作,o 1 複雜度。缺點 擴充套件性弱,不易刪除 插入,這兩項操作均是o n 的時間複雜度 鍊錶結構 優點 擴充...
資料結構學習 線性表
考試前複習下資料結構,把一些知識點整理在這!主要參考了殷人昆主編的 資料結構 用物件導向方法與c 語言描述 這本書,以及中山大學劉聰老師的課件內容!鍊錶雙鏈表 線性表 linear list 是由n n 0 個資料元素 結點 a 0 a 1 a 2 a n 1 組成的有限序列。維基百科 線性表是乙個...