社区
数据结构与算法
帖子详情
如何实现二叉树建立
illuminati
2009-10-11 01:44:03
如何实现这样二叉树的建立, void Insert(Node* m);
规则如下,m应该插入到较短的一个子树上,如果两边子树长度相同,则插在左子树上。就是完全二元树的建立过程。
自己想了很久没有太好的解决方案,期待高手详细解答
...全文
73
2
打赏
收藏
如何实现二叉树建立
如何实现这样二叉树的建立, void Insert(Node* m); 规则如下,m应该插入到较短的一个子树上,如果两边子树长度相同,则插在左子树上。就是完全二元树的建立过程。 自己想了很久没有太好的解决方案,期待高手详细解答
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
world_hum84
2009-10-11
打赏
举报
回复
你这就相当于一个完全对称的二叉树
可以在节点上加一个域,用来存储以当前节点为根的子树所拥有的节点数,
struct node
{
int num;
node* lchild;
node* rchild;
}
然后可以这样插入
设p指向当前节点
p->num++;
if(!p->lchild)
{把节点插入到p的左孩子上}
else if(!p->rchild)
{把节点插入到p的右孩子上}
else if(p->lchild->num > p->rchild->num)
p = p->rchild;
else p = p->lchild
C1053710211
2009-10-11
打赏
举报
回复
你的过程明显不和完全二叉树是等价的,一个有5个节点的完全二叉树就不是你所描述的过程所构造的
如果是构造完全二叉树使用一个队列就可以解决了 类似于先广遍历的过程
每当新加入一个节点就放入队列 然后从队列头取新的节点添加他的子节点 直到最右非叶子节点为止
强烈推荐,超详细
实现
二叉树
的
建立
(附
实现
源码)
目录1.如何创建一棵
二叉树
1.
二叉树
的存储结构定义2.
实现
二叉树
结点的新建、查找、修改3.
实现
二叉树
结点的插入4.
二叉树
创建过程2.
二叉树
的遍历1.先序遍历2.中序遍历3.后序遍历4.层序遍历3.源码
实现
1.如何创建一棵
二叉树
创建一棵
二叉树
需要什么 其实答案很简单,无非就是从根节点开始,逐步
实现
子节点的创建,从而
实现
树的整体框架 由于树是一种特殊的线性表,所以对于生成后的树,我们应该可以对它进...
二叉树
的C++
实现
二叉树
的C++
实现
C++
实现
二叉树
的创建和遍历
实现
二叉树
的创建和遍历:1、
实现
二叉树
的创建,存储结构为二叉链表结点类型。2、创建后
实现
先序中序后序的遍历结果。
二叉链表
实现
二叉树
编写程序,用二叉链表存储表示方法,
实现
二叉树
的基本操作。 (1) 根据扩展
二叉树
的前序遍历序列,
建立
二叉树
。 (2) 根据
二叉树
的前序和中序遍历序列,构造
二叉树
。 (3)
实现
二叉树
的前序、中序和后序遍历,输出遍历结果。 /*编写程序,用二叉链表存储表示方法,
实现
二叉树
的基本操作。 (1) 根据扩展
二叉树
的前序遍历序列,
建立
二叉树
。 (2) 根据
二叉树
的前序和中序遍历序列,构造
二叉树
。 ...
二叉树
的创建与遍历
一、实验目的: 1、熟悉
二叉树
结点的结构和对
二叉树
的基本操作; 2、掌握对
二叉树
每一种操作的具体
实现
; 3、学会递归方法和非递归方法
实现
二叉树
的运算某重操作。 二、实验内容: 1、
建立
一棵
二叉树
。 2、用递归算法对
二叉树
进行先序、中序和后序遍历。 3、用非递归算法对
二叉树
进行先序、中序和后序遍历。 三、实验要求: 编写
实现
二叉树
建立
和遍历的基本算法的函数,并在此基础上设计一个主程序完成如下功能: ...
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章