搜索
编程论坛
→
开发语言
→
『 数据结构与算法 』
→ 二叉树 顺序储存
标题:
二叉树 顺序储存
只看楼主
那你就
等 级:
新手上路
帖 子:1
专家分:0
注 册:2016-5-30
楼主
问题点数:0 回复次数:3
二叉树 顺序储存
c语言 n个结点的完全二叉树按顺序存储在一维数组中 设计一个算法 实现对此二叉树的先序遍历
搜索更多相关主题的帖子:
二叉树
c语言
2016-05-30 23:25
书生牛犊
来 自:星夜征程
等 级:
贵宾
威 望:
10
帖 子:1101
专家分:5265
注 册:2015-10-27
第
2
楼
得分:0
堆排序的概念接触过吗?
如果会,那你就应该知道怎么做这道题了。关键是理解这个完全二叉树放在一维数组里是什么样子的。先序遍历没难度。
如果不会,请自行查阅堆排序的博客/视频/书籍,了解其概念。
百度的时候推荐关键字“完全二叉树”
[此贴子已经被作者于2016-8-3 10:05编辑过]
φ(゜▽゜*)♪
2016-06-27 23:56
书生牛犊
来 自:星夜征程
等 级:
贵宾
威 望:
10
帖 子:1101
专家分:5265
注 册:2015-10-27
第
3
楼
得分:0
或者可以考虑把以前用链表实现的先序遍历稍微改改,只不过现在每次递归我们传递的不再是一个指针,而是一个数组下标,要访问左儿子(i*2,假设你是从1开始存储。。这样也比较通俗),访问右儿子(i*2+1),判断某个下标的访问是否合理(i<=n)?printf(...):return;
φ(゜▽゜*)♪
2016-08-03 10:15
平常心q
等 级:
黑侠
威 望:
7
帖 子:120
专家分:550
注 册:2016-3-31
第
4
楼
得分: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
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-465409-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.177717 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved