版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习主题单元11第28课时焦耳定律课件
- 冀少版八年级生物上册第五单元第一节细菌课件
- 冀少版八年级生物上册第三单元第二节光合作用的原料课件
- 初三化学第一轮复习教学教案
- 《马诗》教学设计
- 住宅小区监理廉洁自律协议
- 五年级语文下册第二单元教学设计教案
- 木材加工厂工人工作证使用办法
- 船舶制造乳胶漆粉刷施工合同
- 碳基金碳资产管理办法
- 数列(中职数学春季高考练习题)
- 《腰段解剖》PPT课件
- 李砚祖《艺术设计概论》第四章设计概论设计与科学技术通用课件
- 高速铁路桥涵工程桥上救援疏散通道施工方案
- 招投标法实施条例解读PPT
- 企业经营状况调查问卷
- 班会PPT: 认识小动物儿童PPT课件
- 机场道面混凝土施工工艺及方法
- 部编版三年级语文上册教材解读及教学建议(课堂PPT)
- 隐形眼镜医疗器械质量管理制度
- (最新整理)施工电梯方案,含电梯基础及地下室顶板回撑方案
评论
0/150
提交评论