遞迴的高階應用
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...