版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6 高等教育,2008.6,“十一五”国家级规按某一规律系统地 并使每个结点恰好被 F FJL
Na)第一棵树的 在先根次序下遍历第一棵树 在后根次序下遍历第一棵树 temte<classT>TreeNode<T>*root){while(root!=NULL) //当前结//遍历第一棵树根的森林rootroot->RightSibling();遍历其他树} CEDJFXMLCEDJFXMLKGLINerse(TreeNode<T>*root){while(root!=NULL)//遍历第一棵树根的森林 //当前结点root=root->RightSibling();//遍历其他树}} D 森林广度优先得到层次序列:ADBCEFGKHvoidTree<T>::WidthTraverse(TreeNode<T>*root)using queue<TreeNode<T>*>aQueue;TreeNode<T>*pointer=root;while(pointer!=NULL){ pointerpointer }pointer pointer=pointer->LeftMostChild(); //pointer指向最左孩子while(pointer!=NULL){ pointer=pointer-}}}D
DE 2014FallStructures&HZ8 2014FallDataStructures&Algorithms Haiyan 每个分支结点均 其子结点信息,子结点按照\A索引值父结点\A0B00B11D0C21D0C\1E3\1E\2F4\2F2G52G\2H6\2H\3I7\3I\3J8\3J\6K9\6K\6L\6L
2\4\\\值
只需简单设置三个指针值即可与子结点表表示法相比,空间效率更高,且结点每个结点一个基于数组的子结点指针表。在子结GHGH 由于树的每个结点均包含固定数目的指针,而且树的ADT的每个函数均能有效实现,故动态“右兄” K // //树结点的值 //右兄结点//tem //拷贝构造函数m_Value=value;pChild=NULL;pSibling} te<class //return} te<class 如果结点是叶,返回trueif(pChild==NULL)returntrue;returnfalse;} te<class //返回第一 } te<class //return} te<class TreeNode<T>::setValue(T& //m_Value=}//TreeNode<T>* ////返回current的父节点,由函数ParentTreeNode<T>*getParent(TreeNode<T>*root,TreeNode<T>* voidtemte<classT>CTree<T>::Tree()root //}temte<classT>Tree<T>::~Tree()while(root)}temte<classT>TreeNode<T>*Tree<T>::getRoot()return}using TreeNode<T>*pointer=root;TreeNode<T>*fatherupperlevelpointer=NULL;//记录父结点if(current!=NULL&&pointer!=current)while(pointerNULL) if(current -> }pointer upperlevelpointer= pointerpointer if(current==pointer)father break;}else{}}}aQueue.clear( return}temte<classvoidTree<T>::DestroyNodes(TreeNode<T>*root)if(root)deleteroot;}}
ABABCKDEFGHJ
0024445600244456ABCKDEFGHJ
找结点的和兄弟比较费事(遍查整个数组没有表示出结点之间的左右次序(适于无序树abcdefabcdefghija-b0d1e1h3i3j3c0f7g70123456789intrightSibling_partree(PParTreet,intp)inti;if(p>=0&&p<t-{for(i=p+1;i<t->n;if(t->nodelist[i].parent==t-}return(-}nSrx,(x,x)∈R(自反x,y)∈R(y,x)∈R(对称x,y)∈R(y,z)∈Rx,z)∈R(传递 点的根结点的过程称为Find(A,(C,(J,(H,(D,(K,(E,(H,先对5(A,B)、(C,K(J,F)(H,E)BE 23456789BE(A,B)(C,K)(J,F)BE
A
0024456ABCKD0024456ABCKDEFGHJ
E E
A0B0C2KDA0B0C2KD4E4F4G5H6JB0123456789 temte<classclassParTree ParTreeNode<T>* //树结点的数int Find(ParTreeNode<T>*node ParTree(constint virtual voidUnion(inti,int i,jboolDifferent(inti,int temte<class{ParTreeNode<T>*pointer=node;while(pointer->getParent()!=NULL)returnpointer;}temte<classvoidParTree<T>::Union(inti,intj)ParTreeNode<T>*pointeri=Find(&array[i]);//找到结点i的根ParTreeNode<T>*pointerj=Find(&array[j]);//找到结点j的根if(pointeri!=pointerj){if(pointeri->getCount()>=pointerj-{pointerj-pointeri->setCount(pointeri->getCount()}elsepointerj->setCount(pointeri->getCount()}}} Union:… …n
以把树的整体深度限制在O(logn)logn a)路径压缩之 (b)路径压0024446ABCKDEFGHJE Etemte<class{if(node->getParent()==NULL)returnnode;returnnode->getParent();}log*nnlogn1nlog*655364(4次log操作 任何结点的的所有结点都直接跟在该结点;
EGE 2014FallDataStructures&Algorithms Haiyanltag有子结点(对应二叉树有则为0,没有则为
ltag的值完全可以推知llinkltag为0的结点有结点,lli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026直播电商农产品品控体系建设与消费者信任修复
- 《灯泡电功率计算》课件
- 计算环境安全保障管理办法
- T/CASAS 033-2024碳化硅金属氧化物半导体场效应晶体管(SiC MOSFET)功率器件开关动态测试方法
- 2026年新能源车辆市场调研报告及行业发展前景预测报告
- 2026年粉尘防爆企业从业人员安全考核试题及参考答案
- T/CABC 28-2026儿童服装统一编码与标识规范
- 《气敏传感器结构》课件
- 《手外伤护理查房》课件
- 2026年度运营部主管年度工作总结课件
- 2026年廉政知识专题测试题及答案
- 城乡教育公平之困与破局:现状、成因与路径探索
- 2026-2027学年人美版(新版)初中美术九年级上册(全册)教学设计(附目录p89)
- 2026年机关事业单位工勤人员计算机操作员高级工考试试题及答案
- 大连船舶重工集团笔试题目及答案
- (正式版)DB11∕T 1733-2020 《绿地保育式生物防治技术规程》
- 2026年中小学教师师德师风知识考试试题及答案
- T∕CSIA 022-2025企业体验式安全教育基地建设规范
- 2026浙江国检检测技术股份有限公司第一轮招聘员工拟录用对象笔试历年常考点试题专练附带答案详解
- GB/T 5124.1-2026硬质合金化学分析方法第1部分:总碳量的测定重量法和气体容量法
- 华为运输包装设计规范(内容系统全面)
评论
0/150
提交评论