c语言二叉搜索树程序,数据结构实验,求用C语言编一个二叉排序树的构建和查找的程序...

03f1c84b05e2a87bba3cc401d786bf0e.png

展开全部

这东西很多的这儿给你一个#include

#include

typedef struct np{

int dat;

struct np *left,*right;

} node;

node *create(void)

{

return (malloc(sizeof(node)));

}

node *t(node *a,int d)

03330ec49a5eaab0f324fa33d918e755.png

{

if (a==NULL) {

a=create();

a->left =a->right =NULL;

a->dat=d;

}

else if (d>=a->dat) {

a->right =t(a->right,d);

}

else if (ddat) {

a->left =t(a->left ,d);

}

d0ce9b384fe100074d7b4ba023d17f37.png

return a;

}

void inorder(node *r)

{

if (r!=NULL) {

inorder(r->left );

printf("%d ",r->dat );

inorder(r->right );

}

}

int ser(node *so,int a)

{

1e891a43f3d1c7978d3691bdf7d10b78.png

if (so==NULL)

return 0;

else if (so->dat==a)

return 1;

else if (a>so->dat)

return ser(so->right,a);

else if (adat)

return ser(so->left ,a);

}

int main(int argc, char* argv[])

{

node *bst=NULL;

i_0_468622942x697607330_15.jpg

FILE *fp;

int i;

fp=fopen("c:\\dat.txt","r"); /*假设数据文件是c:\dat.txt*/

while (!feof(fp)){

fscanf(fp,"%d",&i);

bst=t(bst,i);/*生成二叉排序树*/

}

fclose(fp);

inorder(bst);/*输出二叉排序树*/

putchar('\n');

scanf("%d",&i); /*输入应该查找的数字*/

if (ser(bst,i)) printf("YES");/*如果找到,则输出yesc语言二叉排序树c语言二叉排序树,否则输出no*/

else printf("NO");

return 0;

}

//-

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-144358-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值