假設有一顆已經構建好的有序二叉樹了,你有乙個新節點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...