練習:
1.把二元查詢樹轉變成排序的雙向鍊錶
題目:輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。
要求不能建立任何新的結點,只調整指標的指向。
10/ \
6 14
/ \ / \
4 8 12 16
轉換成雙向鍊錶
4=6=8=10=12=14=16。
首先我們定義的二元查詢樹 節點的資料結構如下:
struct bstreenode
;
1 #include 2 #include 3 #include 4using
namespace
std;
5struct
bstreenode6;
11 bstreenode *phead = null;//
頭節點12 bstreenode *prenode = null; //
前乙個節點
13//
構造二元查詢樹
14void bstree_create(bstreenode *&proot,int value)//
在這個函式中指標要改變,注意用引用傳遞
1524
else
if(proot->m_nvalue 2528
else
if(proot->m_nvalue >value)
2932
else
3336}37
void inorderbst(bstreenode *p)
3843
//遍歷左子樹
44if(p->m_pleft !=null)
4548
49//
轉換節點
50 p->m_pleft = prenode;//
左節點指向前乙個節點
51if(prenode == null)//
左節點指向頭節點
5255
else
//使節點的最後乙個節點右指標指向當前結點
5659 prenode = p;//
當前節點為最後節點
60 cout6162
//遍歷右子樹
63if(p->m_pright!=null)
646768}
69int
main()
70
iOS面試題總結 (二)
動態繫結 程式直到執行時才知道執行哪個方法,動態繫結需要做的,即就是在例項所屬類確定後,將某些屬性和方法繫結到例項上。sel是類方法方法的指標,他就相當於c語言中的中函式指標。sel class func selector oc類裡面的方法都是被轉換成sel變數進行儲存的,當類宣告乙個物件,物件呼叫...
面試題總結 html面試題)
附上鏈結 doctype 的作用是什麼?宣告一般位於文件的第一行,它的作用主要是告訴瀏覽器以什麼樣的模式來解析文件。一般指定了之後會以標準模式來 進行文件解析,否則就以相容模式進行解析。在標準模式下,瀏覽器的解析規則都是按照最新的標準進行解析的。而在相容模式下,瀏 覽器會以向後相容的方式來模擬老式瀏...
面試題總結
網路部分 子網劃分 演算法部分 穩定排序 泡沫排序 bubble sort o n 插入排序 insertion sort o n 桶排序 bucket sort o n 需要 o k 額外空間 計數排序 counting sort o n k 需要 o n k 額外空間 合併排序 merge so...