二叉排序樹 華科05年

2021-10-04 17:29:23 字數 1697 閱讀 1113

二叉搜尋樹的建樹二叉樹的遍歷

二叉樹的建立是以二叉樹的插入操作為基礎的

注意:**不要重複的插入相同資料值!**唉,如果不提示,我可能真的不知道;

//簡單的二叉樹操作

//重複的資料不要進行輸出

#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為其雙親的右孩子時將其的左孩子變為...