題目:輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。
比如將二元查詢樹
10/ \
6 14
/ \ / \
4 8 12 16
轉換成雙向鍊錶
4=6=8=10=12=14=16。
大思路是:中序遍歷。
小思路: 把二叉樹的左右孩子看成雙鏈表中的聯絡兩邊借點的東東。 最開始雙鏈表是空的。
[code]
class node
public node covertnodeandgetfirstlist(node currentnode,node lastlistnode)
return lastlistnode;
}if(currentnode.left != null)
currentnode.left = lastlistnode;
if(lastlistnode !=null)
lastlistnode.rigth = currentnode;
lastlistnode = currrentnode;
if(currentnode.rigth!=null)
}[/code]
把二元查詢樹轉變成排序的雙向鍊錶
1.首先是如何建立乙個二叉查詢樹 2.再對二叉查詢樹進轉換 如下 bstreenode1.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std struct bstreenode typedef bstreenode doubl...
把二元查詢樹轉變成排序的雙向鍊錶
把二元查詢樹轉變成排序的雙向鍊錶 題目 輸入一棵二元查詢樹,將該轉換成個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標向。include include typedef struct bittree bittree void addnode bittree root,int value p r...
把二元查詢樹轉變成排序的雙向鍊錶
這些演算法的思路很多我不會的話都參考了july演算法的思想,特此宣告一下,我只是給出我的具體實現 把二元查詢樹轉變成排序的雙向鍊錶 題目 輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6...