- 91
- 0
- 约1.3万字
- 约 13页
- 2017-08-16 发布于河南
- 举报
第六章 树 二叉树
后序遍历的非递归算法。
在对二叉树进行后序遍历的过程中,当指针p指向某一个结点时,不能马上对它进行
访问,而要先遍历它的左子树,因而要将此结点的地址进栈保存。当其左子树遍历完毕之
后,再次搜索到该结点时(该结点的地址通过退栈得到),还不能对它进行访问,还需要遍
历它的右子树,所以,再一次将此结点的地址进栈保存。为了区别同一结点的两次进栈,
引入一个标志变量nae,有 0 表示该结点暂不访问 1 表示该结点可以访问
标志flag的值随同进栈结点的地址一起进栈和出栈。因此,算法中设置两个空间足够的堆栈,其中,STACKlCM]存放进栈结点的地址,STACK2[M]存放相应的标志n昭的值,两个堆栈使用同一栈顶指针top,top的初值为—1。
具体算法如下:
#defineH 100 /●定义二叉树中结点最大数目。/
voidPOSTOiRDER(BTREET)
{
/*T为二叉树根结点所在链结点的地址。/
BTREESTACKl[H],p=T;
intSTACK2[M],flag,top=—1;
if(T!=NULL)
d0{
while(p!=NULL){
STACK/[++top]=p; /●当前p所指结点的地址进栈●/
STACK2[top]= 0; /,标志0进栈●/
p=p-lchild; /●将p移到其左孩子结点x/
}
p=STACKl[top);
flag=STACK2[top--];
if(flag==0){
STACKl[++top]=p; /,当前p所指结点的地址进栈。/
STACK2[toP]=1; /●标志1进栈●/
p=p-rchild; /x将p移到其右孩子结点o/
}
else{
VISIT(p); /x访问当前p所指的结点x/
p=NULL;
}
}while(p!=NULLtttop!=-1);
}
不难分析,上述算法的时间复杂度同样为O(n)
7.6.3 二叉树的线索化算法
对--X树的线索化,就是把二叉树的二叉链表存储结构中结点的所有空指针域改造成指向某结点在某种遍历序列中的直接前驱或直接后继的过程,因此,二叉树的线索化过程只能在对二叉树的遍历过程中进行。 ·
下面给出二叉树的中序线索化的递归算法。算法中设有指针pre,用来指向中序遍历过程中当前访问的结点的直接前驱结点,pre的初值为头结点的指针;T初始时指向头结点,但在算法执行过程中,T总是指向当前访问的结点。 voldINTHREAD(TBTREET) {
TBTREE pre;
if(T!=Null){
INTHREAD(T—lchild);
if(T—rchild==NULL)
T—rbit=0;
if(T—lchild==NUll);
T—lchild=pre;
T—lbit=0;
}
if(pre—rbitc==0)
pre—rchild=T;
pre=T;
inthread(T-rchild);
} }
平均查找长度(AverageSearchLength):确定一个元素在树中的位置所需要进行的比较次数的期望值。
二叉树的内路径长度(InternalPathLength):从二叉树根结点到某结点所经过的分支数目定义为该结点的路径长度。
二叉树中所有结点的路径长度之和定义为该二叉树的内路径长度IPL。图7。25(h)给出的二叉排序树的内路径长度为
IPL:1X2+2X2+3X1+4X2=17
二叉树的外路径长度(ExternalPathLength):为了分析查找失败时的查找长度,在二叉树中出现空子树时,增加新的空叶结点来代表这些空子树,从而得到一棵扩充后的二叉树。为了与扩充前的二叉树相区别,这些新增添的空的叶结点用小方块代表,称之为外部结点,树中原有的结点为内部结点。
图7.27给出了一棵扩充后的二叉树,其外路径长度EPL是二叉树中所有外部结点的路径长度之和,即
EPL=2X2+3X1+4X4+5X3十6X2=50
习 题
7.1 判断题(在你认为正确的题后的括号中打√,否则打X)。
(1)在树型结构中,每一个结点最多只有一个前驱结点,但可以有多个后继结点。 ( )
(2)在树型结构中,每—个
您可能关注的文档
- 第三届湖南省基础教育教学成果奖拟授奖项目.doc
- 第三章 50-60年代诗歌戏剧散文.doc
- 第三章 《新民主主义革命理论》 习题.doc
- 第三章 借贷记帐法在工业会计中的应用.doc
- 第三章 历史大变动:春秋战国.doc
- 第三章 因特网基本服务.doc
- 第三章 培训与开发综合测试.doc
- 第三章 墙面装饰构造之四.doc
- 第三章 第二节第一课时《钠的重要化合物》学案.doc
- 第三章 管理理论的历史演进.doc
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
最近下载
- DB37_T 4904-2025 链式切割水泥土连续墙技术规程.docx VIP
- DB37_T 4903-2025 沥青路面防裂封水粘结层技术规范.docx VIP
- DB37_T 4909-2025 城市轨道交通隧道结构渗漏水治理技术规程.docx VIP
- 2026年河南工业和信息化职业学院单招职业技能考试题库及参考答案详解.docx VIP
- DB37_T 4914-2025 电梯按需维护保养管理技术规范.docx VIP
- DB37_T 4915-2025 氧气瓶充装自动控制技术要求.docx VIP
- 最全汉语水平的考试HSK6级历年真题经典版.pdf VIP
- 博朗-欧乐B_OralB 5000__O3762_5_CHIN使用说明书.pdf VIP
- DB37_T 4918.5-2025 政务信息化项目管理 第5部分:项目和系统编码.docx VIP
- 价值链视角下的山西汾酒公司资金管理问题与优化路径探究11000字【论文】 .docx VIP
原创力文档

文档评论(0)