b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

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

电脑杂谈  发布时间:2020-03-16 14:01:31  来源:网络整理

c语言 数组排序 二分法_c语言排序方法_c语言二叉排序树

展开全部

这东西很多的这儿给你一个#include <stdio.h>

#include <stdlib.h>

typedef struct np{

int dat;

struct np *left,*right;

} node;

node *create(void)

{

return (malloc(sizeof(node)));

}

node *t(node *a,int d)

c语言排序方法_c语言 数组排序 二分法_c语言二叉排序树

{

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 (d<a->dat) {

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

}

c语言排序方法_c语言二叉排序树_c语言 数组排序 二分法

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)

{

c语言排序方法_c语言二叉排序树_c语言 数组排序 二分法

if (so==NULL)

return 0;

else if (so->dat==a)

return 1;

else if (a>so->dat)

return ser(so->right,a);

else if (a<so->dat)

return ser(so->left ,a);

}

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

{

node *bst=NULL;

c语言排序方法_c语言 数组排序 二分法_c语言二叉排序树

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

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...