数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx

上传人:b****6 文档编号:21331245 上传时间:2023-01-29 格式:DOCX 页数:9 大小:17.45KB
下载 相关 举报
数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx_第1页
第1页 / 共9页
数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx_第2页
第2页 / 共9页
数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx_第3页
第3页 / 共9页
数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx_第4页
第4页 / 共9页
数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx

《数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

数据结构课程设计二叉排序树查找C语言代码1含测试序列文档格式.docx

while(p!

if(p->

data・key二二item.key){break;

}

if(item.key>

p->

data.key){

p=p->

rightChiId;

else

p=p~>

leftChild;

if(p二二NULL)

num二0;

if(num~l)

for(i=0;

i<

n;

i++)

if(item,key—aLi],key)

break;

printf(/?

\nElement%dexistsina[%d]\n"

item,key,i);

}else

printf(z/\nCan,tfindnumber%d!

\n,z,item,key);

/*插入二叉树*/

intInsert(BiTreeNode**root,DataTypeitem){

BiTreeNode*current,*parent=NULL,*p;

current=*root;

while(current!

if(current一〉data・key二二item・key)return0;

parent二current;

if(current->

data・key<

item.key)current二current一〉rightChiId;

elsecurrent二current->

leftChiId;

p=(BiTreeNode*)malloc(sizeof(BiTreeNode));

printf(,zLackofspace!

"

);

exit(l);

data=item;

leftChild二NULL;

rightChild=NULL;

if(parent二二NULL)*root=p;

elseif(item.key<

parent->

data・key)parent->

leftChild=p;

elseparent->

rightChi1d=p;

return1;

/*插入数组*/

voidInsertN()

printf("

Pleaseentersomeinteger:

\nz,);

20;

scanf(,/%d,/,&

a[i]);

if(a[i].key=-l)/*判断是否非数字*/

n=i;

elseif(a[il.key<

=0)

printf(z/Numbermust>

0.\n"

i—;

if(i=19)n二20;

printf(,z\nThenumberyouenteredare:

\n,z):

%d"

,&

[i]);

Insert(&

root,aLi]);

}

printfC\n"

/*中序遍历*/

voidInTraverse(BiTreeNode*root){

if(root==NULL)return;

辻(root->

leftChiId!

二NULL)

InTraverse(root->

leftChild);

printf(z/%d"

root->

data・key);

if(root->

rightChiId!

rightChiId);

/*删除*//*DataTypeitem*/

voidDestroy()

/*BiTreeNode**root:

辻((*root)!

=NULL&

&

(*root)->

leftChild!

Destroy(&

leftCh订d);

if((*root)!

(*root)-

MightChiId!

rightChiId);

free(*root);

*/printf(^Destoryhasbeenfinished!

z/);

/*打印二叉树*/

voidPrintBiTree(BiTreeNode*bt,intn){

if(bt二二NULL)return;

PrintBiTree(bt->

rightChild,n+1);

for(i二0;

i++)printfC”);

if(n>

二0)

printfC”);

printf("

%d\n"

bt->

data);

leftChiId,n+1);

/*主函数*/

voidmain()

intd,t二0;

do

\n"

printfC1.Insert"

/*y第二次插入的重复数字没有被记录,记录了新

的数字,相同数值被忽略*/

printfC2.Search'

ll"

printf(,z3.Destroy'

n"

printfC4.Print\nz,);

printfC5.InTraverse'

/*y*/

printfC6.Exit!

\n\nz/);

Inputcommandnumber:

scanf("

%d"

&

d);

switch(d)

case1:

InsertNO;

break;

case2:

printfC\nSearchnumber:

\n,z):

scanf&

item・key);

Search(root,item);

case3:

/*判断是否存在该数值*/

'

Destroynumber:

\nz/);

scanf(,z%d,z,&

item.key);

Search(root,item);

if(num==0)

printf('

Destroycouldnotbedone・\n"

Destroy();

case4:

PrintBiTree(root,0):

case5:

InTraverse(root):

case6:

t=l:

default:

printf("

Thenumbershouldbetween1and6.\n"

}while(!

t);

测试序列二义排疗;

树查找

1・Insert

2.Search

3.Destroy

4.Print

3.InTraverse

6.Exit!

Pleaseentersomeinteger:

10

50

32

5

76

9

40

88

-1

Thenumberyouenteredare:

10503257694088

5.InTraverse

6.Exit!

4

——88

76

50

一一一10

5

1.Insert

2

Searchnumber:

9

Element9existsina[5J

1

120

6

1206

1.

Insert

2.

Search

3.

Destroy

4.

Print

5.

InTraverse

6.

Exit!

4

——120

——40

——32

一―10

一0

569103240507688120

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1