1樓:匿名使用者
#include
#include
typedef struct np node;
node *create(void)
node *t(node *a,int d)else if (d>=a->dat)
else if (ddat)
return a;
}void inorder(node *r)}int ser(node *so,int a)int main(int argc, char* argv)fclose(fp);
inorder(bst); /*輸出二叉排序樹*/putchar('\n');
scanf("%d",&i); /*輸入需要查詢的數字*/if (ser(bst,i)) printf("yes"); /*如果找到,則輸出yes,否則輸出no*/
else printf("no");
return 0;
2樓:素水雲兒
難,做不出,這幾天做二維雙向迴圈鏈做的頭暈
3樓:匿名使用者
找本資料結構的書看看,問題就可以解決了。
4樓:綦葉羿情韻
#include
#include
#include
#define
infmt
"%d"
#define
outfmt
"%d"
/*#define
null
0l*/
#define
bool
int#define
true
1#define
false
0#define
len10000
typedef
intelemtype;
typedef
struct
bstnode
bstnode,
*bstree;
/*插入新節點
*/void
insert(bstree
*tree,
elemtype
item)
cursor
=cursor->lchild;
}else
cursor
=cursor->rchild;}}
}return;}/*
查詢指定值
*/bstree
search(bstree
tree,
elemtype
item)
return
null;}/*
中綴遍歷
*/void
inorder(bstree
tree)}/*
**資源
*/void
cleanup(bstree
tree)}/*
產生一組隨機數
*/void
randnum(int
*a,ints)}
}}void
main()
while
(false
==finish);
switch
(choice)
break;
}case
'2':
break;}}
printf("\n\n建立完成...\n");
inorder(root);
printf("\n\n");
/*二叉排序樹的查詢測試
*/do
while
(choice=='y'||choice=='y');
cleanup(root);}
二叉排序樹與平衡二叉排序樹基本操作的實現
幸福減快樂 include include typedef struct bitnodebitnode,bitree bitree search tree bitree t,int keyword,bitree father return p bitree creat tree int count ...
構造平衡二叉樹,平衡二叉樹是二叉排序樹嗎?
從結點48向根回溯,依次計算各個結點的平衡因子,48的為0,37為 1 左減去右 53為 1,24為 2,產生不平衡,從24往來路看2個結點 路徑形態為先向右走再向左走,於是 和37進行先右後左雙旋 第一步 將 向右旋轉,37上,53變為37的右子樹,48交給53成為53的左子樹。第二步 將 向左旋...
輸入帶排序序列生成二叉排序樹,並調整使其變為平衡二叉樹
include stdio.h include conio.h include stdlib.h define null 0int leftdep,rightdep typedef struct bitnodebintnode,bintree bintree createbitree return ...