把二元查詢樹轉變成排序的雙向鍊錶

2021-06-08 16:36:46 字數 1567 閱讀 1085

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...