資料結構期末複習

2022-06-29 17:21:10 字數 3279 閱讀 6891

1

//基於鄰接表

2struct

vertexnode3;

7struct

edgenode8;

12struct vertexnode adjlist[100

];13

int visited[100

];14

void gs(int a, int n, int

e)15

22for (k = 0; k < e; k++)

2330}31

void dfs(int

v)32

42 p = p->next;43}

44}45void bfs(int

v)46

62 p=p->next;63}

64}65 }

1

//基於鄰接矩陣

2int vertex[100];3

int edge[100][100];4

int visited[100];5

int n = 10, e = 10;6

void gz(int a, int n, inte)7

13for (i = 0; i < n; ++i)

1419}20

for (k=0;kk)

2126}27

void dfs(int

v)2837}

38}39void bfs(int

v)4052}

53}54 }

1

//堆排序

2void sift(int a, int pos, int

size)313

if (a[child] >tmp)

1417

else

break;18

}19 a[pos] =tmp;20}

21void heap(int a, int

size)

2228

for (i=size-1;i>0;--i)

2933 }

1

//選擇排序

2void straight(int a, int

size)314

}15if (pos!=min)

1619

}20 }

1

//希爾排序

2void shell(int a, int

size)

314 a[j + gap] =tmp;15}

16}17 }

1

//折半查詢

2int binary(int a, int size, intk)3

12if (k1316

else

1720}21

return0;

22 }

1

//單鏈表刪除

2struct

node3;

7 node *first;

8int delete(inti)9

16if (p==null&&p->next==null)

1720

else

2128 }

1

//單鏈表的插入

2struct

node3;

7 node *first;

8void insert(int i, intx)9

17if (p=null)

1821

else

2228 }

1

//單鏈表的逆置

2struct

node3;

7 node *first;

8void

reverse()

919 }

1

//二叉樹的遍歷

2struct

binode3;

7 binode *bt;

8void preorder(binode *bt)910

17}18void inorder(binode *bt)

1926}27

void postorder(binode *bt)

2836}37

void leverorder(binode *bt)

3845 q[++rear] =bt;

46while (front!=rear)

4754

if (q->right!=null)

5558

}59 }

1

struct

binode2;

6struct binode *bt;7//

求結點數

8int size(binode *bt)914

else

1518}19

//求高度

20int height(binode *bt)

2126

int lh = height(bt->left);

27int rh = height(bt->right);

28return

1 + (lh > rh ?lh : rh);29}

30//

求葉子數

31int leafnum(binode *bt)

3237

if ((bt->left==null)&&(bt->right)==null)

3841

else

4245 }

1

//統計只有乙個孩子的結點個數

2struct

binode3;

7struct binode *bt;

8void count(binode *bt, int *n)

917 count(bt->left, n);

18 count(bt->right, n);19}

20 }

1

//判斷單鏈表是否遞增

2struct

node3;

7 node *first;

8bool

increase()918

else

1922}23

return

true

;24 }

資料結構期末複習(一)

一.判斷題 字串是資料物件特定的線性表 t 乙個無向圖的連通分量是其極大的連通子圖 t 解析位址 假設b是一棵樹,b 是對應的二叉樹。則b的後根遍歷相當於b 的中序遍歷 t 通常,二叉樹的第i層上有2i 1個結點 f 對於一棵m階的b 樹,樹中每個結點至多有m 個關鍵字。除根之外的所有非終端結點至少...

資料結構期末複習(三)

1.判斷題 在雜湊表中,所謂同義詞就是被不同雜湊函式對映到同一位址的兩個元素。f 在雜湊中,函式 插入 和 查詢 具有同樣的時間複雜度。t 解析 都是o 1 有n個數存放在一維陣列a 1 n 中,在進行順序查詢時,這n個數的排列有序或無序其平均查詢長度不同。f 解析 平均查詢長度是固定的。在索引順序...

期末複習 資料結構 排序(1)

1.排序 將一組 無序 的記錄序列調整為 有序 的記錄序列。2.內排序和外排序 概念 衡量效率的方法 排序方法 內部排序 插入排序 快速排序 選擇排序 歸併排序 基數排序等 外部排序 3.穩定排序和非穩定排序 穩定性概念 排序前兩個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。4...