基本数据结构概念
一、線性結構
順序存儲線性表:將元素依次存儲在地址連續的存儲單元中,物理上相鄰;
鏈式存儲線性表:將元素按照邏輯順序鏈接在依次,不要求地址連續;
棧:僅在表的一端進行插入、刪除操作的線性表,“后進先出”;
隊列:僅在表的一端進行插入,另一端進行刪除的線性表,“先進先出”
棧和隊列有時候筆試會針對”FIFO“這些特性出問題,不過一般理解了,就比較簡單。
二、樹
2.1概念
二叉樹是每個節點最多有兩個子樹(“左子樹”和“右子樹”)的樹結構。
滿二叉樹:二叉樹的每一層節點個數都達到最大(即深度為k,且有2^k-1個節點);
完全二叉樹:只有最下面兩層節點的度數可以小于2,并且最下一層的節點都集中在左邊(深度為k,有n個節點的二叉樹,當且僅當其每一個節點都與深度為k的滿二叉樹中,序號為1至n的節點對應)。
滿二叉樹是完全二叉樹的特例,如下圖:
平衡二叉樹:又被稱為AVL樹,它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,并且左右兩個子樹都是一棵平衡二叉樹(完全二叉樹是平衡二叉樹),如下圖
2.2二叉樹性質:
- a.二叉樹的第i層至多有2^{i-1}個結點;
- b.深度為k的二叉樹至多有2^k-1個結點;
- c.具有n個節點的完全二叉樹的深度k=log2n+1;
- d.對任何一棵二叉樹T,若終端結點的個數為n0,度為2的結點數為n2,則n0=n2+1。
2.3二叉樹遍歷
二叉樹遍歷記住一點就行了,即遍歷的順序都是針對根節點而言的。例如先序即先訪問根節點,再遍歷左子樹,最后遍歷右子樹。結合實例來講,如下圖:
先序遍歷結果:abdgcefh
中序遍歷結果:dgbaechf
后序遍歷結果:gdbehfca
三、圖
無向完全圖:任意兩個頂點都有一條直接邊相連接;在含有n個頂點的無向完全圖中,有n(n-1)/2條邊;
有向完全圖:任意兩個頂點都有方向互為相反的兩條弧相連接;在含有n個頂點的有向完全圖中,有n(n-1)條邊。
圖的深度優先遍歷:類似于樹的先序遍歷,下圖顯示了深度優先搜索頂點被訪問的順序:
圖的廣度優先遍歷:類似于樹的按層次遍歷,下圖顯示了廣度優先搜索頂點被訪問的順序:
總結
- 上一篇: 实用ExtJS教程100例-006:Ex
- 下一篇: 交叉编译inetutils并配置teln