建立二叉排序樹,要求序列由大到小進行遍歷輸出

2021-09-12 05:44:36 字數 915 閱讀 1223

從鍵盤接受輸入,每個節點所含資料元素均為單字元,要完成:

建立一棵二叉鍊錶表示方式儲存的二叉排序樹,並列印輸出對其由大到小遍歷結果。

測試資料:輸入efhjbcagid,符號「@」表示結束字元。

根據二叉排序樹的定義可知,對其進行中序遍歷可得到由小到大遍歷結果,對其進行逆中序遍歷即可達到要求

#include

#include

#define len sizeof(bstnode)

typedef

struct node bstnode,

*bstree;

//插入結點,並對結點進行判斷,確定插入左子樹還是右子樹

void

insertbst

(bstree *bst,

char key)

else

if(key<

(*bst)

->key)

insertbst(&

((*bst)

->lchild)

,key)

;//將s插入左子樹

else

if(key>

(*bst)

->key)

insertbst(&

((*bst)

->rchild)

,key)

;//將s插入右子樹

}//從鍵盤輸入元素的值,建立相應的二叉排序樹

void

createbst

(bstree *bst)

}//逆中序遍歷從大到小輸出二叉樹結點,即先遍歷右子樹,然後根,最後左子樹

void

inorder

(bstree root)

}int

main()

建立二叉排序樹

建立二叉排序樹 1 建立二叉排序樹,二叉樹排序樹有個特點,如果結點值大於根,則在右子樹去查詢插入位置,如果小於樹根,在左子樹去查詢樹根,如果相等,不作任何操作 2 根據上面的特性,需要兩個結點,分別是當前結點和父節點 3 先遍歷二叉樹節點,找到要插入的位置,根據父節點的指向要插入的位置 實現過程如下...

二叉排序樹的建立

首先二叉排序樹的查詢,這裡father用於記錄訪問點的前序,如果找到關鍵字,也就是程式中的e,則p指向這個結點,而father則指向p的父結點,如果沒有找到關鍵字,則father指向查詢路徑上的最後乙個結點,也可以理解為要插入的結點 關鍵插入father的左子樹或者右子樹 typedef struc...

二叉排序樹的建立

首先二叉樹排序樹 binary sort tree 簡稱bst,又叫二叉查詢樹。具有以下性質 若它的左子樹不為空,則左子樹上的所有結點的值均小於它的根結構的值 若它的右子樹不為空,則右子樹上的所有結點的值均大於它的根結構的值 它的左,右子樹也分別為二叉排序樹。簡單的概括起來就是 左 中 右 由此可知...