演算法)二叉樹轉換為雙向鍊錶

2021-06-02 04:53:47 字數 928 閱讀 1845

將二叉樹轉換為雙向鍊錶:

2      7

1     3  6   8

雙向鍊錶:1=2=3=5=6=7=8

#include

#include

#include

#include

#include

#include

using namespace std; 

struct bstree

;bstree* doublelist=null;

bstree* pheadlist=null;

//樹的建立

void createtree(bstree* &root,int value)

else

if(root->mvalue>value)

createtree(root->lefttree,value);

else

createtree(root->righttree,value);

}//按層次遍歷樹

void nodeprint(bstree * root)

coutif(doublelist!=null)

doublelist->righttree=pcurrent;

else

pheadlist=pcurrent;

doublelist=pcurrent;

}void erotolist(bstree* root)

int main(int argc,char**argv)

;bstree* root=null;

int len=sizeof(a)/sizeof(int);

for(int i=0;imvalue<<" ";

pheadlist=pheadlist->righttree;

}cout

}

二叉樹轉換為雙向鍊錶

根據前序遍歷和中序遍歷還原構造二叉樹 思路 1 開始時雙向迴圈鍊錶為空,第乙個節點應該為最左邊的節點 2 中序遍歷二叉樹,將輸出的每個節點加到新建立的雙向鍊錶的末尾 include include using namespace std 樹的前序遍歷 int preorder1 樹的中序遍歷 int...

二叉樹轉換為雙向鍊錶

1.把二元查詢樹轉變成排序的雙向鍊錶 題目 輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6 8 10 12 14 16。首先我們定義的二元查詢樹 節點的資料結構如下 struct bs...

演算法題 二叉樹轉換為雙向鍊錶

何海濤部落格 二叉查詢樹變為排序的雙向鍊錶 思路 遞迴。1 struct treenode2 67 treenode btree2list treenode root,bool asright 825 26 轉換右子樹 27if root right null 28 pright btree2lis...