1.首先是如何建立乙個二叉查詢樹
2.再對二叉查詢樹進轉換
**如下:
// bstreenode1.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include
using namespace std;
struct bstreenode
;typedef bstreenode doublelist;
doublelist * phead;
doublelist * plistindex;
void converttodoublelist(bstreenode * pcurrent);
// 建立二元查詢樹
void addbstreenode(bstreenode * & pcurrent, int value)
else
else if ((pcurrent->m_nvalue) < value)
else
if (null != pcurrent->m_pleft)
// 節點接到鍊錶尾部
converttodoublelist(pcurrent);
// 右子樹為空
if (null != pcurrent->m_pright)
}// 二叉樹轉換成list
void converttodoublelist(bstreenode * pcurrent)
else
plistindex = pcurrent;
cout
// bstreenode1.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include using namespace std;
struct bstreenode
;typedef bstreenode doublelist;
doublelist * phead;
doublelist * plistindex;
void converttodoublelist(bstreenode * pcurrent);
// 建立二元查詢樹
void addbstreenode(bstreenode * & pcurrent, int value)
else
else if ((pcurrent->m_nvalue) < value)
else
// 節點接到鍊錶尾部
converttodoublelist(pcurrent);
// 右子樹為空
if (null != pcurrent->m_pright)
}// 二叉樹轉換成list
void converttodoublelist(bstreenode * pcurrent)
else
plistindex = pcurrent;
cout
結果:
把二元查詢樹轉變成排序的雙向鍊錶
把二元查詢樹轉變成排序的雙向鍊錶 題目 輸入一棵二元查詢樹,將該轉換成個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標向。include include typedef struct bittree bittree void addnode bittree root,int value p r...
把二元查詢樹轉變成排序的雙向鍊錶
這些演算法的思路很多我不會的話都參考了july演算法的思想,特此宣告一下,我只是給出我的具體實現 把二元查詢樹轉變成排序的雙向鍊錶 題目 輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6...
把二元查詢樹轉變成排序的雙向鍊錶
輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6 8 10 12 14 16。include include typedef struct bstreenode bstreenode t...