題目:
輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。
要求不能建立任何新的結點,只調整指標的指向。
10/ /
6 14
/ / / /
4 8 12 16
轉換成雙向鍊錶
4=6=8=10=12=14=16。
#ifndef utils_header
#define utils_header
#include "
utils.h
"#endif
#include "
ms.h
"struct treenode* ms01util(struct treenode* root, int flag)
struct treenode* left = ms01util(root->lchild, 0);
struct treenode* right = ms01util(root->rchild, 1);
if (left != null)
if (right != null)
struct treenode* result = root;
if (flag == 0)
}else
}return result;
}void ms01();
struct treenode* root = gene2ortree(array, 17);
cout << endl;
root = ms01util(root, 1);
while (root != null)
cout << endl;
return;
}
二元查詢樹與排序的雙向鍊錶的轉換
這道題目來自 1.把二元查詢樹轉變成排序的雙向鍊錶 題目 輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6 8 10 12 14 16。首先我們定義的二元查詢樹節點的資料結構如下 str...
二叉查詢樹轉換成排序的雙向鍊錶
題目 輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何 新的結點,只調整指標的指向。比如將二元查詢樹 10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6 8 10 12 14 16。思路 對於樹的很多題目,都可以使用遞迴的方法來處理。這道題目也不例外。我們從最基本...
將二叉搜尋樹轉換成乙個排序雙向鍊錶
將二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。定義 二叉搜尋樹也叫二叉查詢樹或二叉排序樹,它可以是一顆空樹,或者是滿足如下性質的二叉樹 若該樹的左子樹不為空,則左子樹上所有節點的值均小於根節點的值,若該樹的右子樹不為空,則右子樹上所有節點的值均大於根節點...