1.腦圖
2.表示方法
按照資料結構概述所說,線性表有兩種表示方法分別是順序表示和鏈式表示,
鍊錶就是鏈式表示的典型。
我們知道鏈式表示是分配了n塊記憶體空間,可以認為彼此不連續,所以不能用偏移量去定位每個元素。
下面就先說最簡單的
單向鍊錶
:如果每個資料元素能有乙個指標指向下乙個元素的話,那麼只需要知道第乙個資料元素就能乙個乙個的遍歷整個鍊錶了,這就是單向鍊錶。
對於每個鍊錶元素我們稱之為
節點
,每個節點都有兩個域:
資料域&
指標域資料域
就是資料元素所在的區域,
而指標域則是儲存指向另乙個節點的指標的區域。
對於單向鍊錶,它的指標域有乙個指標指向下乙個節點的記憶體位址。
需要注意的是:
頭節點
指向表中第乙個節點,它本身的資料域不帶資料,所以判斷鍊錶null的方法是判斷頭結點的指標是否為空。
最後乙個節點的指標應指向null。
對於單向鍊錶,它有乙個問題。那就是當你獲取鍊錶中第n個元素(n>1)時,想獲取它的上乙個指標,需要重新遍歷一遍鍊錶,演算法複雜度o(n)。為了應對這個問題,我們引入了雙向鍊錶。
雙向鍊錶
單向鍊錶每個結點的指標域只有乙個指向下乙個結點的指標,現在在上面加上乙個指向前乙個結點的指標就變成了雙向鍊錶。這樣,要尋找前乙個結點只需要o(1)就可以了。
還有一類形式的鍊錶,就是
迴圈鍊錶
。它在單向鍊錶上做了一點小改動,在單向鍊錶中最後乙個結點的指標是指向null的,可是迴圈鍊錶中最後乙個結點的指標是指向第乙個結點的。
3.棧和佇列
棧棧最大的特徵就是
lifo
(last in first out),也就是後入先出。最後入棧的元素最先出棧。
佇列佇列最大的特徵和棧相反,是
fifo(first in first out),也就是先入先出。最先入隊的元素最先出隊。
4.字串
字串是一類特別的線性表,它的所有元素都是單個字元,針對字串,最重要的就是尋找子串也就是
字串匹配演算法了,後面會涉及。
5.陣列
學過c/c++的人都會無比熟悉,也不廢話了。高階是二維陣列也就是矩陣,這個會有一些要點。
6.廣義表
廣義表就是線性表的擴充套件,我們知道線性表所有的元素都是同類的,但是廣義表可以使得每個元素都是不同型別。
考研資料結構筆記 線性表概述
1.1 線性表的定義 線性表是具有相同特性的資料元素的乙個有限序列。該序列中所含元素的個數叫做線性表的長度。1.2 線性表的邏輯特性 只有乙個表頭元素,只有乙個表尾元素,表頭元素沒有前驅,表尾元素沒有後繼,除表頭和表尾元素元素之外,其他元素只有乙個直接前驅,也只有乙個直接後繼。1.3 線性表的儲存結...
考研資料結構 線性表
線性表是具有相同特徵資料元素的乙個有限序列。元素個數叫做線性表的長度,n n 0 表示,n 0 空表 只有乙個表頭元素,只有乙個表尾元素。表頭無前驅,表尾無後繼,除表頭和表尾外,其他元素只有乙個直接前驅,也只有乙個直接後繼。順序儲存結構 順序表 和鏈式儲存結構 鍊錶 兩種。順序表 連續儲存 順序儲存...
資料結構考研 線性表之順序表
整理一下王道資料結構上有關線性表之順序表的知識和題目吧!順序表的特點是表中的邏輯順序與其物理順序相同 線性表中元素位序是從1開始的,而陣列中元素的下標是從0開始的,所以如果題目說請刪除第i個元素,直接上是刪除 l data i 1 元素 順序表的優點是儲存密度大,不需要存放指標域。以及隨機訪問 也叫...