查詢二叉樹(樹)

2021-07-11 01:59:02 字數 1982 閱讀 1254

description

已知一棵二叉樹用鄰接表結構儲存,中序查詢二叉樹中值為x的結點,並指出是第幾個結點

input

第一行為二叉樹的結點個數,n<=100;第二行x表示要查詢的結點的值;以下第一列數值是各結點的值,第二列資料是左兒子結點編號,第二列數是右兒子結點編號

output

輸出乙個數即查詢的結點編號

sample input

15

5 2 3 

12 4 5 

10 0 0 

29 0 0 

15 6 7 

8 0 0 

23 0 0

sample output

4

解題思路:

先根據讀入資料構建乙個二叉樹,然後邊尋找邊進行統計,最後輸出統計出的那個值即可。

程式:
type
tree=^node;
node=record

data:longint;

lchild,rchild:tree;

end;

const
maxn=100;

var
n,i,k,ans:longint;
a:array[1..maxn,1..3] of longint;
bt:tree;

procedure build(var bt:tree;x:longint);
begin

if x=0 then

begin

bt:=nil;

exit;

end;

new(bt);

bt^.data:=a[x,1];

build(bt^.lchild,a[x,2]);

build(bt^.rchild,a[x,3]);

end;

procedure print(bt:tree);
begin

if bt=nil then exit;

print(bt^.lchild);

inc(ans);

if bt^.data=k then

begin

writeln(ans);

halt;

end;

print(bt^.rchild);

end;

begin
readln(n);
readln(k);
for i:=1 to n do

readln(a[i,1],a[i,2],a[i,3]);

build(bt,1);
print(bt);
end.

版權屬於: 

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

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

二叉樹 二叉查詢樹

構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 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 這個就是最完美的樹,顧名思義,所有葉子節點都有相同的深度,並...