資料結構與演算法(七)

2021-07-31 08:49:48 字數 460 閱讀 1653

遞迴的高階應用

1. 漢諾塔的問題

所有的盤子剛開始都放在塔座a上,要求將所有的盤子從塔座a移動到塔座c上,每次只能移動乙個盤子,任何盤子不能放在比自己小的盤子上。

2. 移動子樹

例:起始五個盤子在a,中間為b,需要移到c;可以首先將上邊四個移動到b,則a就剩乙個,只需一步a→c;問題變為起始四個盤子在b,中間為a,需要移動到c;可以先考慮把上邊三個盤子移動到a,則b就剩乙個,只需一步b→c;問題變為起始三個盤子在a,中間為b,需要移動到c。。。最終乙個盤子在a,中間為b,需要移動到c,只需一步a→c。

3. 遞迴解決

漢諾塔遞迴

public class hanoitower else

}}

測試:

public class testhanoitower 

}

資料結構與演算法 實驗七

1 實現二叉樹的插入操作,並利用先序遍歷的實現列印。如圖所示 列印的結果為 abcdfge include stdlib.h include stdio.h typedef char datatype include bitree.h void main typedef struct node bi...

演算法與資料結構 七 快速排序

快速排序的基本思想如下 在一組無序元素中,找到乙個數作為基準數。將大於它的數全部移動到它的右側,小於它的全部移動到右側。在分成的兩個區中,再次重複1到2 的步驟,直到所有的數全部有序 下面還是來看乙個例子 3,6,1,2,8,4,7 首先選取乙個基準數,一般選擇序列最左側的數為基準數,也就是3,將小...

資料結構與演算法 七 雜湊表

雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。實現根據以前的單向鍊錶編寫乙個雜湊鍊錶 public class ha...