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