1樓:
補充下……
我是樓主,程式貼錯了………
上面的都沒編譯過……
typelink=^data;
data=record
num:longint;
left:link;
right:link;
end;vartree,head,tail_left,tail_right:link;
n:longint;
procedure start;
vari,j,k,l:longint;
beginhead:=nil;
end;procedure make(x:longint);
vari,j,k,l:longint;
now:link;
begintree:=head^.left;
while tree=nil do
beginif x>tree^.num
then tree:=tree^.leftelse tree:=tree^.right;
end;new(tree);
tree^.num:=x;
end;procedure init;
vari,j,k,l,zhi:longint;
beginstart;
readln(n);
for i:=1 to n do
beginread(zhi);
make(zhi);
end;tree:=head^.left;
end;procedure mid_bl(tree:link);
vari,j,k,l:longint;
beginif tree=nil then exit;
mid_bl(tree^.left);
write(tree^.num,' ');
mid_bl(tree^.right);
end;begin
init;mid_bl(tree);
end.這個了。
排序二叉樹問題(pascal) 求大牛幫助!!
2樓:網友
準備一棵排序二叉樹(題目的意思不是叫你去實現排序二叉樹,應該是有現成的**和其中包含的資料可以直接使用)
讀入指令數量。
讀入指令字串列表。
分析指令字串列表,得到指令和對應的運算元逐個執行指令。當碰到查詢指令時,輸出查詢結果。
什麼是二叉樹排序?最好給個標程,pascal
3樓:網友
每乙個參加排列的資料對應二叉樹的乙個結點,且任一結點如果有左(右)子樹,則左(右)子樹各結點的資料必須小(大)於該結點的資料。中序遍歷排序二叉樹即得排序結果。程式如下:
program pxtree;
consta:array[1..8] of integer=(10,18,3,8,12,2,7,3);
type point=^nod;
nod=record
w:integer;
right,left:point ;
end;var root,first:point;k:boolean;i:integer;
procedure hyt(d:integer;var p:point);
beginif p=nil then
beginnew(p);
with p^ do begin w:=d;right:=nil;left:=nil end;
if k then begin root:=p; k:=false end;
endelse with p^ do if d>=w then hyt(d,right) else hyt(d,left);
end;procedure hyt1(p:point);
beginwith p^ do
beginif left<>nil then hyt1(left);
write(w:4);
if right<>nil then hyt1(right);
endend;
beginfirst:=nil;k:=true;
for i:=1 to 8 do hyt(a[i],first);
hyt1(root);writeln;
end.
二叉排序樹的實現:分別以順序表和二叉連結串列作為儲存結構,實現二叉排序樹。基本操作有查詢、插入、刪除。
4樓:網友
樓主注意bai用順序表作二叉樹的du儲存結構的zhi結點的結構, 結點的dao位址是順序表的索引回值時間答複雜度是 n
c/c++ code#include
typedef struct nod
node;void inorder(node t, int root)}void main()
inorder(t, 0);
pascal難題 最優二叉樹
5樓:網友
提是不難 但是要費點精力來算。
二叉樹排序
6樓:司馬刀劍
二叉排序樹就是中序遍歷之後是有序的;
構造二叉排序樹步驟如下;
插入法構造。
第二個結點 4 比 6 來的小 所以插入在 6 的左子樹;
第三個結點 8 比 6 來的大 所以插入在 6 的右子樹;
第四個結點 5 比6 來得小 先進入左子樹然後跟 4比較,5 比4 大 所以插入在 4 的右子樹;
以此類推 將要插入的結點先跟根結點比較, 比根結點大進入右子樹 反之進入 左子樹;
在跟進入的 左子樹(右子樹)的結點比較 方法同上;
直到沒有結點了 在插入; 你給的排序最後的二叉排序樹如下;
中序遍歷結果是 : 3 4 5 6 7 8 9 ;
先序遍歷結果是 : 6 4 3 5 8 7 9 ;
二叉排序樹定義,二叉樹和二叉排序樹有啥區別
二叉排序樹 binary sort tree 又稱二叉查詢樹 binary search tree 亦稱二叉搜尋樹。是資料結構中的一類。在一般情況下,查詢效率比連結串列結構要高。定義一 一棵空樹,或者是具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若右子樹不空,...
請問平衡二叉樹和二叉排序樹的關係
平衡二叉樹和二叉排序樹沒有關係,他們的定義都不相同。由於平衡二叉樹的設計是為了改進二叉排序樹的效能,所以他的插入和刪除按排序樹的來 討論 請問 平衡二叉樹和二叉排序樹的關係 看你的插入演算法是怎樣的了,平衡二叉樹未必是二叉排序樹,比如二路堆就可以實現為平衡二叉樹,且非二叉排序樹。平衡二叉樹和二叉排序...
以二叉連結串列為儲存結構,分別寫出求二叉樹結點總數及葉總數的演算法。(資料結構)
先設計了一個結構體形式int n cout 請輸入二叉樹內容 第一行為節點總數n 後面的n行是節點,謝謝 int countnode btnode t 節點總數 void countleaf btnode t 葉子節點總數 求葉子節點數 include using namespace std int...