#include #include using namespace std;
typedef int elemtype;
struct tnode ;
typedef struct head *tree;
//函式宣告
tree init();
tnode * initnode();
void displaydesc(tnode *);
void add(tree , elemtype);
void displayasc(tnode *);
int main()
cout << "排序後的樹為(從小到大):" << endl;
displaydesc(tree->root);
cout << endl;
cout << "排序後的樹為(從大到小):" << endl;
displayasc(tree->root);
return 0;
}//初始化一棵樹
tree init()
//初始化乙個樹結點
tnode * initnode()
//從小到大展示樹中所有元素
void displaydesc(tnode *root)
displaydesc(root->lchild);
cout << root->data << " ";
displaydesc(root->rchild);
}//從大到小展示樹中所有元素
void displayasc(tnode *root)
displayasc(root->rchild);
cout << root->data << " ";
displayasc(root->lchild);
}//向樹中新增元素結點
void add(tree tree , elemtype value)
//初始化要插入的資料為乙個樹結點
tnode *t = initnode();
t->data = value;
//如果沒有根結點,把要插入的結點當作根結點插入
if(tree->root == null)
//將要插入的點與樹中的各結點值進行比較,小的放左樹,大的放右樹
tnode *tcurr = tree->root;
while(tcurr != null) else
} else else }}
}
二叉樹,排序二叉樹
說到二叉樹,這可是資料結構裡面的非常重要的一種資料結構,二叉樹是樹的一種,本身具有遞迴性質,所以基於二叉樹的一些演算法很容易用遞迴演算法去實現。作為一種非線性結構,比起線性結構還是相對複雜的,很多人甚至看不懂演算法的意思,不能理解。其實一開始接觸這些東西還是挺暈的,不過你多看幾遍,上機實現可能你就會...
排序二叉樹or搜尋二叉樹or查詢二叉樹
排序二叉樹,搜尋二叉樹,查詢二叉樹都是乙個意思,只是叫法不同而已。下面的文章中我們統稱為排序二叉樹。本文主要是針對高中資訊學,因此其中不涉及到指標,所有需要用指標的地方都直接使用陣列進行模擬。排序二叉樹定義 1 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值 2 若右子樹不空,則右子...
排序二叉樹or搜尋二叉樹or查詢二叉樹
排序二叉樹,搜尋二叉樹,查詢二叉樹都是乙個意思,只是叫法不同而已。下面的文章中我們統稱為排序二叉樹。本文主要是針對高中資訊學,因此其中不涉及到指標,所有需要用指標的地方都直接使用陣列進行模擬。排序二叉樹定義 1 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值 2 若右子樹不空,則右子...