1. 程式人生 > >資料結構學習筆記6--線性表易錯知識點總結

資料結構學習筆記6--線性表易錯知識點總結

最近通過刷題,對線性表有了更為深刻的瞭解,為了防止自己忘記,決定整理一下所碰到的知識點,留待複習回顧。

重要概念:

1.結點:包含了資料域和指標域,其中指標域用來儲存下一個節點的地址。

2.頭指標和頭結點有什麼聯絡和區別?

  頭指標:指向第一個結點的指標為頭指標。

  頭結點:當有頭結點時,該結點的資料域可以不儲存任何資訊,頭結點的指標域指向第一個結點。

  在有頭結點的情況下,頭指標指的是指向頭結點的指標。當沒有頭結點時,頭指標指的是指向第一個結點的指標。

3.有頭結點和無頭結點有什麼不同,設定頭結點的動機是什麼?

  這個問題是基於第2個問題提出的,設定頭結點的作用有兩個:主要使得插入和刪除等操作統一,在第一個元素之前插入元素和刪除第一個結點不必另作判斷。另外,不論連結串列是否為空,連結串列指標不變。

  對上面這段具體解釋是:以無頭結點情況下單鏈表的刪除操作為例,如果要刪除的是第一個結點,那麼頭指標要指向後面的結點,同時將後一個結點的指標域指向前一個結點。如果刪除的不是第一個結點,那麼頭指標不用修改,只需要將後一個結點的指標域指向前一個結點。所以刪除的時候,會因為要刪除的位置不同,而產生兩種不同的情況。為了使兩種情況統一,因此增加了頭結點。這樣,頭指標指向了頭結點,就不會被修改,刪除的時候也不會出現需要討論的情況。  插入時的情況也是一樣。

 總的來說:你可以沒有頭結點,但是在進行各種插入刪除等操作時,要仔細考慮所有的可能情況。

4.什麼是單迴圈連結串列,和單鏈表有什麼不同?

  單迴圈連結串列是一類特殊的單鏈表,它指的是在單鏈表中將終端結點的指標域NULL改為指向表頭結點。

5.取線性表的第i個元素的時間同i的大小有關嗎?

  不一定。

 線性表在鏈式儲存時,查詢第i個元素的時間同i的值成正比,而在順序儲存時,查詢第i個元素的時間與i的值無關。

6.根據線性表的鏈式儲存結構中每一個結點包含的指標個數,將線性連結串列分成單鏈表多重連結串列;而又根據指標的連線方式,連結串列分為動態連結串列靜態連結串列

7.線性表的邏輯關係是指線性表的資料元素之間存在著線性關係,順序儲存結構是通過物理上相鄰來表示元素之間關係的,而鏈式儲存結構是通過指標來表示元素之間關係的。順序儲存結構用一維陣列來表示,給定下標,可以存取相應元素,屬於隨機存取的儲存結構。需要注意的是,儘管“只要知道某結點的指標就可以存取該元素”,但因連結串列掉的存取都需要從頭指標開始,順鏈而下,因此連結串列不屬於隨機存取結構

8.順序儲存結構不僅僅可以儲存線性結構,還可以存放非線性結構,如二叉樹。