構建有序樹

2021-10-25 13:28:31 字數 1538 閱讀 2026

假設有一顆已經構建好的有序二叉樹了,你有乙個新節點n需要新增到樹中。而構建一棵有序樹,那就是從根節點開始,你要做的是找乙個合適的位置放置新節點。

新節點n->data與樹中某節點node->data比大小,若n->data < node->data,往左走。否則往右走。

如果是往左找,若該node節點的左孩子是空的,那這個空就是我要插入的位置,若不為空,就接著比,跳轉到左子樹(node=node->left;),繼續做第一步。

3.如果往右找,同第二步,跳轉(node=node->right)。

有倆個結構體:第乙個treenode,表示樹的節點,其中包含int型別的data域、指向自身型別的left(左孩子)和right(右孩子)。第二個tree,表示樹型別,其中包含乙個指向treenode型別的root(根節點)。

typedef

int elementtype;

struct treenode

;struct tree

;

插入函式(構建函式)

/*

*插入節點函式,大數放右邊,小數放左邊*

*兩個引數,第乙個傳入樹指標,第二次傳入要插入的值

*/void

insert

(tree *tree,

int val)

treenode *node=

newtreenode()

;//為插入的節點開闢空間

node-

>data=val;

//初始化

node-

>left=

null

; node-

>right=

null;if

(tree-

>root==

null

)else

else

}else

else}}

}}

3.遍歷函式(為了方便,使用中序遍歷,輸出結果為有序數列)

//遞迴實現

void

midvisit

(treenode *node)

else

}//非遞迴,注意新增 include

void

midvisit

(treenode *root)

else

}}

4.主函式(測試函式)

int

main()

cout<

"結果為:"

團隊構建有感

時光飛逝,冬去春來,距離那場雪漸漸的遠了,距離那次在銀瑞林的團隊構建訓練也漸漸的遠了,但是那座堅毅的聯發之路還赫然眼前,那聲發自丹田的 action 依然響徹耳扉。團隊是效率,團隊是合作,團隊是感恩,團隊是不懈的堅持。移動座位的遊戲,從尋求答案的三十分鐘,到最後訓練的十秒,從量變到質變,昇華的是團隊...

團隊構建有感

時光飛逝,冬去春來,距離那場雪漸漸的遠了,距離那次在銀瑞林的團隊構建訓練也漸漸的遠了,但是那座堅毅的聯發之路還赫然眼前,那聲發自丹田的 action 依然響徹耳扉。團隊是效率,團隊是合作,團隊是感恩,團隊是不懈的堅持。移動座位的遊戲,從尋求答案的三十分鐘,到最後訓練的十秒,從量變到質變,昇華的是團隊...

輸入一組數,構建有序鍊錶 (C語言實現)

要求說明 輸入一組數,構建有序鍊錶。整體思路 用陣列儲存這組數,每次都去找最小值,把最小值構建結點並使用頭插法插入到單鏈表中。然後將該值刪掉 為簡便起見,把值弄成max 這裡使用的是類直接插入的排序方法。實現 include include define max 1000000 單鏈表結構體定義 t...