| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 721 人关注过本帖
标题:请教,关于二叉树
取消只看楼主 加入收藏
zzyxtfncel
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-5-22
收藏
 问题点数:0 回复次数:0 
请教,关于二叉树

C语言实现
⑴ 二叉树的建立
提示:已知一棵二叉树,共有n个结点,建立该二叉树,建立方法如下:
a.按照完全二叉树的编号方法,对该二叉树进行编号。
b.每次输入一个结点的值x和该结点的编号k,动态申请一块空间来存放该结点,空间的地址为p。
c.把p值赋给adr[k]中。
d.如果k=1,转到“f”;否则,把p的值填入其父结点的指针域中。p的父结点地址为adr[k/2],若k为偶数,则做adr[k/2]->lc=p;若k为奇数,则做adr[k/2]->rc=p。
f.重复“b”到“d”,直到全部结点数据输入完为止。
⑵ 实现前序遍历二叉树的非递归算法
提示:使用栈来实现前序遍历二叉树的基本思想是:
① 从二叉树的根结点开始,沿左支一直走到没有左孩子的结点为止。
② 在走的过程中访问所遇结点,并依次将所遇结点的非空右孩子进栈。
③ 当找到没有左孩子的结点时,如果该结点有右孩子,则从栈顶退出该结点的右孩子并访问之,然后前序遍历该结点的右子树。
④ 如果该结点无右孩子,则从栈顶退出该结点的双亲或祖先的右孩子并访问之,然后前序遍历该结点的双亲或祖先的右子树。
⑤ 按上述过程遍历所有子树,如此重复直到栈空。

搜索更多相关主题的帖子: 二叉树 结点 空间 adr 
2007-05-22 11:48
快速回复:请教,关于二叉树
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042763 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved