二叉搜尋樹的建樹、二叉樹的遍歷
二叉樹的建立是以二叉樹的插入操作為基礎的;
注意:**不要重複的插入相同資料值!**唉,如果不提示,我可能真的不知道;
//簡單的二叉樹操作
//重複的資料不要進行輸出
#include
"bits/stdc++.h"
using
namespace std;
const
int maxn =
110;
struct node};
//記錄資料的大小
int n;
//輸入陣列
int input[maxn]
;//插入節點,注意傳位址
void
insert
(node*
&root,
int x)
//如果已經存在這個節點了
if(root-
>data == x)
else
else}}
node*
create
(int input,
int n)
return root;
}void
preorder
(node* root)
printf
("%d "
,root-
>data)
;preorder
(root-
>lchild)
;preorder
(root-
>rchild);}
void
inorder
(node* root)
inorder
(root-
>lchild)
;printf
("%d "
,root-
>data)
;inorder
(root-
>rchild);}
void
postorder
(node* root)
postorder
(root-
>lchild)
;postorder
(root-
>rchild)
;printf
("%d "
,root-
>data);}
intmain()
//進行建樹
node* root =
create
(input,n)
;//進行前序遍歷
preorder
(root)
;printf
("\n");
//進行中序遍歷
inorder
(root)
;printf
("\n");
//進行後續遍歷
postorder
(root)
;printf
("\n");
}return0;
}
凡是涉及到影響樹的結構的操作都要傳位址的。 華科機考 二叉排序樹(改)
時間限制 1秒 空間限制 32768k 題目描述 二叉排序樹,也稱為二叉查詢樹。可以是一顆空樹,也可以是一顆具有如下特性的非空二叉樹 1.若左子樹非空,則左子樹上所有節點關鍵字值均不大於根節點的關鍵字值 2.若右子樹非空,則右子樹上所有節點關鍵字值均不小於根節點的關鍵字值 3.左 右子樹本身也是一顆...
二叉排序樹
在複習資料結構,把這個東西總結一下。這種結構是動態查詢表,這種動態是相對靜態查詢 順序查詢,折半查詢,分塊查詢等 來說的。對於各種靜態鍊錶,要達到查詢複雜度為o logn 必須要求有序 而要使插入刪除複雜度為o 1 必須是鍊錶儲存。動態查詢表就可以同時滿足這兩者。動態查詢表的特點是表結構本身在查詢過...
二叉排序樹
name 二叉排序樹相關操作 author unimen date 2011 10 8 13 14 21 刪除結點比較麻煩,總結如下 4大種情況 1 結點p無右孩子 將該點的左孩子變為其在雙親中的同位孩子 1 p為其雙親的左孩子時將其的左孩子變為雙親的左孩子 2 p為其雙親的右孩子時將其的左孩子變為...