並查集:一種簡單的集合表示。
通常用樹的雙親表示法作為並查集的儲存結構。
通常用陣列元素的下標代表元素名,用根結點的下標代表子集合名,根結點的雙親結點為負數。
initial(s)
將集合s中的每個元素都初始化為只有乙個單元素的子集合。
union(s, root1, root2)
把集合s中的子集合(互不相交) root2併入子集合root1.
find(s, x)
查詢集合s中單元素x所在子集合,並返回該子集合的名字。
下面的結點都是根節點,所以雙親結點都是負數
例題:
s=
s0=, s1=, s2=
解析:s0是根節點,下面有四個子結點(0,6,7,8)所以為 -4 , s1和s2 是根節點下面有三個子結點所以為-3, s4、s5、s6、s7、s8、s9都是子結點所以parent填相應的雙親結點,如s4的雙親結點是s1,表就填1。如下圖
;//雙親結點下標
void initial (
int s)
//查詢
intfind
(int s[
],int x)
//合併
void
union
(int s,
int root1,
int root2)
資料結構 考研筆記(二) 二叉樹的應用
計算二叉樹所有結點數 int n 0 void count btnode p 計算葉結點數 int n 0 void count 0 btnode p 利用右孩子指標連線葉結點 採用先序遍歷模板 void link ntnode p,btnode head,btnode tail else link...
考研資料結構筆記 棧
鏈棧棧的定義 棧是一種只能在一端進行插入或刪除操作的線性表,棧頂 允許進行插入或刪除操作的一端稱為棧頂 棧底 相對於棧頂在表的另一端,不能進行插入或刪除操作的一端稱為棧底,棧底是固定不變的。入棧 向棧中插入元素 出棧 刪除棧頂元素 棧最主要的特點就是先進後出 last in first out 按照...
考研資料結構筆記 佇列
鏈佇列佇列的定義 是一種先進先出的線性表,僅允許在表的一端進行插入,在表的另一端進行刪除,可進行插入操作的一端稱為隊尾,可進行刪除操作的一端稱為隊首。佇列的特點 先進先出 first in first out,fifo 佇列的儲存結構 可以分為順序佇列和鏈隊。順序佇列的定義 typedef stru...