




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用二叉树实现存储信息用二叉树实现存储信息.txt老子忽悠孩子叫教育,孩子忽悠老子叫欺骗,互相忽悠叫代沟。男人这花花世界,我要用什么颜色来吸引你。#include<iostream>#include<stdlib.h>usingnamespacestd;typedefstruct_studentintid;char20Name;IntAge;intMath;/(数学成绩);/学生结构体structtreeitemstructtreeitem*lchild;structtreeitem*rchild;struct_studentmystudent;/二叉树结构体classS
2、tudentpublic:Student(void);Student(void);voidCreate(structtreeitem*Tnode);/创建voidFind(structtreeitem*tree,inti);查看节点是否存在voidSearch(Student&tree);/查询节点voidChange(structtreeitem*Tnode,inti);/修改voidDeleteNode(structtreeitem*tree,inti);/删除Student*node;/根节点private:booltj;inti_id,i_age,i_math;charc_ch
3、;=.cpp=Student:Student(void)(tj=false;)Student:Student(void)()voidStudent:Create(structtreeitem*Tnode)/创建1(cin>>i_id,c_ch,i_age,i_math;if(id!=null&&ch!="&&age!=null&&math!=null)(struct_student*Ts;Ts->id=i_id;Ts->Name=c_ch;Ts->Age=i_age;Ts->Math=imath;Tn
4、ode=(structtreeitem*)malloc(sizeof(structtreeitem);Tnode->mystudent=Ts;Create(Tnode->lchild);/生成左子树Create(Tnode->rchild);/生成右子树cout<<"CreateComplated!"<<endl;elseTnode=NULL;cout<<"NoCreateComplated!"<<endl;voidBinSTree:Find(structtreeitem*tree,int
5、i)/查找if(tree!=NULL)if(tree->id=i)tj=true;return;if(tree->lchild!=NULL)f(tree->lchild->id=i)tj=true;return;if(tree->rchild!=NULL)f(tree->rchild->id=i)tj=true;return;Find(tree->lchild,i);Find(tree->rchild,i);voidStudent:Search(Student&tree)if(tree!NULL)if(tree->lchild
6、->lchild=NULL&&tree->lchild->rchild=NULL)returntree->lchild;elsef(tree->rchild->lchild=NULL&&tree->rchid->rchild=NULL)returntree->rchild;returnSearch(tree->lchild);returnSearch(tree->rchild);voidStudent二Change(structtreeitem*Tnode,inti)Find(Tnode,i);i
7、f(!tj)cout<<"无止匕节点!"<<endl;elsecin>>i_age,i_math,c_ch;Tnode->mystudent.Age=i_age;Tnode->mystudent.Name=c_ch;Tnode->mystudent.Math=i_math;voidStudent:DeleteNode(structtreeitem*tree,inti)Find(tree,i);if(!tj)cout<<"无止匕节点!"<<endl;return;if(tree!
8、=NULL)if(node->id=i)/要删除的正好是根节点f(node->lchild=NULL&&node->rchild=NULL)/只有一个根节点的情况deletenode;node=NULL;cout<<"已删除节点,当前树为空"<<endl;return;elseif(node->lchild!=NULL&&node->rchild=NULL)/有左孩子没右孩子newtreeitem*p=node;treeitem*dtreeitem(Search(node)->id)
9、;d->lchild=tree->lchild;d->rchild=NULL;node=d;deletep;cout<<"ID值为"<<i<<"的节点已被删除"<<endl;elseif(node->rchild!=NULL&&node->lchild=NULL)/有右孩子没左孩子treeitem*p=node;treeitem*d=newtreeitem(Search(node)->contents);d->lchild=NULL;d->rc
10、hild=tree->rchild;d;node =deletep;cout<<"ID值为"<<i<<"的节点已被删除"<<endl;else/有左、右孩子newtreeitem*p=node;treeitem*dtreeitem(Search(node)->id);d->lchild=tree->lchild;d->child=tree->rchild;node=d;deletep;cout<<"ID值为"<<i<<
11、;"的节点已被删除"<<endl;if(tree->lchild!=NULL)/左孩子,且正是要查找的if(tree->lchild->id=i)/子是要查找的if(tree->lchild->lchildtree->lchild->rchild!=NULL)treeitem*p=tree->lchild;不是根节点,树还有若根节点的左孩=NULL&&tree->lchild=tree->lchild->rchild;deletep;cout<<"ID值为&q
12、uot;<<i<<"的节点已被删除"<<endl;)elsef(tree->lchild->lchild=NULL&&tree->lchild->rchild=NULL)deletetree->lchild;tree->lchild=NULL;cout<<"ID值为"<<i<<"的节点已被删除'<<endl;)elsef(tree->lchild->lchild!=NULL&&
13、;tree->lchild->rchild=NULL)treeitem*p=tree->lchild;tree->lchild=tree->lchild->lchild;deletep;cout<<"ID值为"<<i<<"的节点已被删除"<<endl;elseif(tree->lchild->lchild!=NULL&&tree->lchild->rchild!=NULL)treeitem*p=tree->lchild;tre
14、eitem*d=newtreeitem(Search(node)->id);d->left=tree->lchildt->lchild;d->rchild=tree->lchild->rchild;tree->lchild = d;deletep;return;f(tree->rchild!=NULL)右孩子,且正是要查找的不是根节点,树还有NULL &&f(tree->rchild->id=i)f(tree->rchild->lchildtree->rchild->rchild=NULL
15、)deletetree->rchild;tree->rchild=NULL;cout<<"ID值为"<<i<<"的节点已被删除'<<endl;)elsef(tree->rchild->lchild!=NULL&&tree->rchild->rchild=NULL)treeitem*p=tree->rchild;tree->rchild=tree->rchild->lchild;deletep;cout<<"ID值
16、为"<<i<<"的节点已被删除'<<endl;)elseif(tree->rchild->child=NULL&&tree->rchild->rchild!=NULL)treeitem*p=tree->rchild;tree->rchild=tree->rchild->rchild;deletep;cout<<"ID值为"<<i<<"的节点已被删除"<<endl;elseif(tree->rchild->lchild!=NULL&&tree->rchild->rchild!=NULL)treei
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工期延误的合同问题解决途径2篇
- 厂房买卖协议全解析3篇
- 代收款授权委托书怎么写3篇
- 律师授权委托书应注意的问题3篇
- 住宅院落买卖合同优化3篇
- 学生考试诚信宣誓3篇
- 砼构件生产成本控制考核试卷
- 农业机械租赁业务中的收益管理考核试卷
- 羊绒面料图案设计试题考核试卷
- 精密仪器中合成材料制造技术的研究进展考核试卷
- 卫生管理行业人才培养与社会责任分析试题及答案
- 酒类合伙开店协议书
- 2025克拉玛依机场第一季度招聘(15人)笔试参考题库附带答案详解
- 企业事故隐患内部报告奖励制度
- 中国历史地理知到课后答案智慧树章节测试答案2025年春泰山学院
- 2025江苏南京证券校园招聘129人易考易错模拟试题(共500题)试卷后附参考答案
- 《基于MATLAB和Simulink的电动汽车助力转向控制系统仿真研究12000字(论文)》
- 2025年八下音乐期末试题及答案
- 初中人工智能跨学科融合教学探索与实践
- 《膝关节半月板》
- 2025年职教高考对口升学 护理类 专业综合模拟卷(5)(四川适用)(原卷版)
评论
0/150
提交评论