排序二叉樹

2021-09-12 03:19:06 字數 1284 閱讀 7962

#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 若右子樹不空,則右子...