c语言如何实现二叉树的顺序存储?

姑苏一梦 2013-12-23 11:56:42
如题。。。老师布置的任务,
我的想法是,先写一个头文件,定义一个struct bitnode {}
然后,再定义一个 struct tree{}。
但是在c文件实现中,不知道如何下手。。。。求高手赐教
...全文
652 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SKATE11 2014-01-04
  • 打赏
  • 举报
回复
用一个数组 记录好父子节点位置下标就行了
JiMoKuangXiangQu 2014-01-04
  • 打赏
  • 举报
回复
gongheguoyingpai11 2013-12-25
  • 打赏
  • 举报
回复
既然是完全二叉树那用数组就可以了啊 假设根结点是0 那么一个结点其左孩子 且该结点的在数组中下标为n 则其左孩子的下标为2*n+1 而右孩子的下标为 2*n+2 因为是完全二叉树 所以使用这种方法应该是非常好的 之所以使用指针实现树是因为大多数树并不是满树或者完全二叉树 所以会造成大量空间浪费 而对于满树和完全二叉树当然使用数组实现最好
木犀花香 2013-12-25
  • 打赏
  • 举报
回复
引用 楼主 xyf12344 的回复:
如题。。。老师布置的任务, 我的想法是,先写一个头文件,定义一个struct bitnode {} 然后,再定义一个 struct tree{}。 但是在c文件实现中,不知道如何下手。。。。求高手赐教
看一下二叉堆的存储方式就会了!
一起来玩玩呗 2013-12-23
  • 打赏
  • 举报
回复
 在一棵n个结点的完全二叉树中,从树根起,自上层到下层,每层从左至右,给所有结点编号,能得到一个反映整个二叉树结构的线性序列。 然后用一个数组存起来就可以了
姑苏一梦 2013-12-23
  • 打赏
  • 举报
回复
后来,老师要求的是一个完全二叉树
AndyStevens 2013-12-23
  • 打赏
  • 举报
回复
维基百科。。。

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧