第一范文网 - 专业文章范例文档资料分享平台

二叉树及其应用(算法与数据结构课程设计)

来源:用户分享 时间:2025/5/18 10:55:25 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

printf(\ 1.修改生日\\n\\ 2.修改电话\\n\\ 3.修改学号\\n\\ 4.不修改\\n\

scanf(\ switch(caseflag) {case 1:

printf(\请输入修改后的生日:\ scanf(\

strcpy(ModifyNode->data.date,Mod); break; case 2:

printf(\请输入修改后的电话:\ scanf(\

strcpy(ModifyNode->data.phone,Mod); break; case 3:

printf(\请输入修改后的学号:\ scanf(\

strcpy(ModifyNode->data.StudentNum,Mod); break;

case 4:return;} } } }

/****删除二叉树****/

void DeleteTree(BiTree T)

{ char ch[20]; PBTNode DelNodeFather,DelNode,p,q;int flag; printf(\请输入要删除信息的姓名:\ DelNode=SearchTree(T,ch); if(!DelNode)

printf(\查找的姓名不存在\\n\ else

{if (T==DelNode)

{if(DelNode->left) {p=DelNode->left; while(p->right) {p=p->right;}

p->right=DelNode->right; q=DelNode->left; *DelNode=*q; q->left=NULL; q->right=NULL;

wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802

free(q);}

else if(DelNode->right) { q=DelNode->right; *DelNode=*q; q->left=NULL; q->right=NULL; free(q);}

else { strcpy(T->data.name,\无\

strcpy(T->data.StudentNum,\无\ strcpy(T->data.date,\无\ strcpy(T->data.phone,\无\ } else

{ DelNodeFather=SearchFather(DelNode,T,&flag); if(DelNode->left) {p=DelNode->left; while (p->right) {p=p->right;}

p->right=DelNode->right; q=DelNode->left; *DelNode=*q; q->left=NULL; q->right=NULL; free(q);}

else{ q=DelNode->right; if(q)

{ *DelNode=*q; q->left=NULL; q->right=NULL; free(q);}

else{ free(DelNode);

if (flag==0) DelNodeFather->left=NULL; if (flag==1) DelNodeFather->right=NULL;} } }

printf(\删除指定姓名后的同学录\\n\ } }

/****主函数****/ void main() { BiTree T; Int caseflag; char ch[20];

DataType x={\周五\

wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802

DataType items[4]={

{\赵一\ {\钱二\ {\孙三\ {\李四\ CreateBiTree(items,&T);

printf(\先序遍历:\\n\

while(1){ printf(\ 1.按姓名查找\\n\\ 2.新增同学信息\\n\\ 3.修改同学信息\\n\\ 4.删除同学信息\\n\\ 5.退出\\n\\n\

scanf(\ switch(caseflag) {case 1:

printf(\请输入要查找的姓名:\ if(!SearchTree(T,ch))

printf(\查找的姓名不存在\\n\ break; case 2:

printf(\新增:\\n\ InsertChild(T,x); PreOrderTraverse(T); break; case 3:

ModifyTree(T);

PreOrderTraverse(T); break; case 4:

DeleteTree(T);

PreOrderTraverse(T); break; case 5:return;} } }

八、测试结果:

2、在顺序二叉树中求解节点所在层次数。

wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802

I

3、在链式二叉树中求解节点所在层次数。

4、以同学录为例,利用二叉树存储结构实现建立、查找、新增、修改、删除等功能。 (1)建立:

2、查找:

3、新增:

wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802

二叉树及其应用(算法与数据结构课程设计).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c34yst7o6o38c83h0eoo9_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top