| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4575 人关注过本帖
标题:二叉树 顺序储存
只看楼主 加入收藏
那你就
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-5-30
收藏
 问题点数:0 回复次数:3 
二叉树 顺序储存
c语言 n个结点的完全二叉树按顺序存储在一维数组中 设计一个算法 实现对此二叉树的先序遍历
搜索更多相关主题的帖子: 二叉树 c语言 
2016-05-30 23:25
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
堆排序的概念接触过吗?
如果会,那你就应该知道怎么做这道题了。关键是理解这个完全二叉树放在一维数组里是什么样子的。先序遍历没难度。
如果不会,请自行查阅堆排序的博客/视频/书籍,了解其概念。

百度的时候推荐关键字“完全二叉树”


[此贴子已经被作者于2016-8-3 10:05编辑过]


φ(゜▽゜*)♪
2016-06-27 23:56
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
或者可以考虑把以前用链表实现的先序遍历稍微改改,只不过现在每次递归我们传递的不再是一个指针,而是一个数组下标,要访问左儿子(i*2,假设你是从1开始存储。。这样也比较通俗),访问右儿子(i*2+1),判断某个下标的访问是否合理(i<=n)?printf(...):return;

φ(゜▽゜*)♪
2016-08-03 10:15
平常心q
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:120
专家分:550
注 册:2016-3-31
收藏
得分:0 
void PostTraverseBTree(struct BTNode * pT)
{
    if (NULL != pT)
    {
        if (NULL != pT->pLchild)
        {
            PostTraverseBTree(pT->pLchild);
        }   
        if (NULL != pT->pRchild)
        {
                PostTraverseBTree(pT->pRchild);
        }
        printf("%c\n", pT->data);
    }
}
2016-08-19 11:52
快速回复:二叉树 顺序储存
数据加载中...
 
   



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

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