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

查找二进制排序树的(C语言)代码

电脑杂谈  发布时间:2020-03-26 08:06:00  来源:网络整理

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

全部展开

#include

#include

#include

#define INFMT“%d”

#define OUTFMT“%d”

/ *#定义空0L * /

#define BOOL int

#define TRUE 1

#define假0

#define LEN 10000

typedef int ElemType;

typedef struct BSTNode

{

ElemType数据;

struct BSTNode * lchild,* rchild;

} BSTNode,* BSTree;

/ *插入新节点* /

无效插入(BSTree *树,ElemType项目)

{

BSTree节点=(BSTree)malloc(sizeof(BSTNode));

node-> data = item;

node-> lchild = node-> rchild = NULL;

如果(!*树)

*树=节点;

其他

{

BSTree游标= *树;

同时(1)

{

if(项目数据)

{

如果(NULL == cursor-> lchild)

{

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

cursor-> lchild = node;

休息;

}

cursor = cursor-> lchild;

}

其他

{

如果(NULL == cursor-> rchild)

{

cursor-> rchild = node;

休息;

}

cursor = cursor-> rchild;

}

}

}

返回;

}

/ *查找指定值* /

BSTree搜索(BSTree树,ElemType项目)

{

BSTree游标=树;

while(光标)

{

如果(项目==光标->数据)

返回光标;

否则,如果(项数据)

cursor = cursor-> lchild;

其他

cursor = cursor-> rchild;

}

返回NULL;

}

/ *遍历中缀* /

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

无效顺序(BSTree树)

{

BSTree游标=树;

如果(光标)

{

顺序(光标-> lchild);

printf(OUTFMT,光标->数据);

顺序(光标-> rchild);

}

}

/ *回收资源* /

无效清理(BSTree树)

{

BSTree光标=树,temp = NULL;

如果(光标)

{

清理(cursor-> lchild);

清理(cursor-> rchild);

免费(光标);

}

}

/ *生成一组随机数* /

void randnum(int * a,int s)

{

int i,j,mod = s * 10;

srand(时间(NULL));

for(i = 0; i

{

a [i] = rand()%mod +1;

对于(j = 0; j

{

if(a [i] == a [j])

{

a [i] = rand()%mod +1;

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

j = -1;

继续;

}

}

}

}

void main()

{

ElemType项目;

字符选择;

BSTree根= NULL,重新输入; / *必须分配一个NULL值c语言 二叉排序树,否则会发生错误* /

布尔值=否;

printf(“ ***欢迎使用二进制排序树演示程序*** \ n \ n”);

printf(“请选择如何创建树: \ n”);

printf(“ 1. 手动输入数据以创建二进制排序树\ n”);

printf(“ 2. 自动生成数据以创建二进制排序树\ n”);

{

scanf(“%c”,&选择);

getchar();

如果(选择=='1'||选择=='2')

finish = TRUE;

}而(FALSE ==完成);

切换(选择)

{

情况“ 1”:

{

printf(“请输入数据(-10000结尾): \ n”);

同时(1)

{

scanf(INFMT和项目);

如果(-10000!=物品)

插入(&根,项目);

其他

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

休息;

}

休息;

}

情况'2':

{

int ia [LEN],i = 0,循环= LEN;

randnum(iac语言 二叉排序树,LEN);

while(循环)

{

插入(&root,ia [i ++]);

}

休息;

}

}

printf(“ \ n \ nCreated ... \ n”);

顺序(根);

printf(“ \ n \ n”);

/ *查找二进制排序树的测试* /

{

printf(“ \ n请输入搜索数据: ”);

scanf(“%d”,&item);

getchar();

printf(“正在搜索... \ n”);

ret =搜索(根,项目);

如果(NULL == ret)

printf(“查找失败!”);

其他

printf(“找到成功!”);

printf(“ \ n继续按y,然后按其他键退出. \ n”);

choice = getchar();

} while(choice =='y'||选择=='Y');

清理(根);

}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-152723-1.html

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

      每日福利
      热点图片
      拼命载入中...