PAT 1043 二叉查詢樹

2022-04-10 01:57:33 字數 1314 閱讀 1724

#include#include

#include

using

namespace

std;

const

int size = 5000

;int

g_preorder[size];

intg_preorderimg[size];

intg_postorder[size];

int g_index = 0

;struct

bsnode;//

在一顆二叉查詢樹中新增乙個節點。isimg為true,則表示生成的

//是二叉查詢樹的映象;

void insertnode(bsnode* &p, int key,bool

isimg)

else

else

}}//

建立一顆二叉查詢樹或其映象。

void createbst(bsnode* &root, int arr, int n,bool

isimg)

}void preorder(bsnode* root,bool

isimg)

//二叉查詢樹或其映象的輸出結果。

void postorder(bsnode*root)

//檢查兩個陣列的內容是否相同。

bool checkissame(int a,int b, int

len)

//輸出後序遍歷的結果。

void printres(int arr, int

len)

else

if(i == len-1)//

最後乙個元素要輸出換行符

cout<}}//

釋放一顆二叉樹的節點

void freenodes(bsnode *root)

intmain()

createbst(root, arr, n,

false

); createbst(rootimg, arr, n,

true

); g_index = 0

; preorder(root,

false);//

得到二叉查詢樹的先序遍歷結果

if(checkissame(arr, g_preorder, n))

else

else

cout

<<"no"

<}

freenodes(root);

freenodes(rootimg);

}return0;

}

二叉樹 二叉查詢樹

構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 include include include include using namespace std 二叉樹結點 struct treenode 鍊錶結點 struct listnode struct tempnodetempnode...

二叉樹 二叉查詢樹

二叉樹 binary tree 一種樹型結構,每個節點最多擁有兩個節點。如下圖 幾種型別的二叉樹 1.full binary tree 每個節點的孩子數 是 0 或者 2.對高度沒有要求。如下圖 2.perfect binary tree 這個就是最完美的樹,顧名思義,所有葉子節點都有相同的深度,並...

樹(樹,二叉樹,二叉查詢樹)

1.定義 n n 0 個結點構成的有限集合。當n 0時,稱為空樹 2.對於任一棵非空樹 n 0 它具備以下性質 1 樹中有乙個稱為 根 root 的特殊結點,用 r 表示 2 其餘結點可分為m m 0 個互不相交的有限集t1,t2,其中每個集合本身又是一棵樹,稱為原來樹的子樹。3.樹的一些性質 1 ...