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

发布时间 : 星期一 文章二叉树及其应用(算法与数据结构课程设计)更新完毕开始阅读506c2dc49ec3d5bbfd0a7469

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