社区
数据结构与算法
帖子详情
?对给定的整数序列,建立一棵二叉排序树,并按中序遍历输出树中结点。用C语言编一程序怎么实现?
呆瓜
2012-06-01 11:24:51
?对给定的整数序列,建立一棵二叉排序树,并按中序遍历输出树中结点。用C语言编一程序怎么实现?
...全文
1190
2
打赏
收藏
?对给定的整数序列,建立一棵二叉排序树,并按中序遍历输出树中结点。用C语言编一程序怎么实现?
?对给定的整数序列,建立一棵二叉排序树,并按中序遍历输出树中结点。用C语言编一程序怎么实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
呆瓜
2012-06-04
打赏
举报
回复
谢谢仁兄出手相助!
SaintTinyBoy
2012-06-02
打赏
举报
回复
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node *lchild,*rchild;
}BSTNode;
BSTNode *insert(BSTNode *t,BSTNode *s)
{
BSTNode *p,*q; //p指向欲插入的节点,q指向p节点的父节点
if(t==NULL) return s;
p=t; //p指向根节点
while(p) //使q成为s的父节点,p指向s的位置
{
q=p;
if(s->data==p->data)
{
return t;
}
if(s->data >p->data)
{
p=p->rchild;
}
else
p=p->lchild;
}
if(s->data >q->data)
{
q->rchild=s;
}
else
q->lchild=s;
return t;
}
BSTNode *create()
{
BSTNode *t,*s;
int e;
t=NULL;
scanf("%d",&e);
while(e!=-1)
{
BSTNode *s=(BSTNode *)malloc(sizeof(BSTNode));
s->lchild =NULL;
s->rchild =NULL;
s->data =e;
t=insert(t,s);
scanf("%d",&e);
}
return t;
}
void InOrder(BSTNode *t)
{
if(t)
{
InOrder(t->lchild );
printf("%d,",t->data );
InOrder(t->rchild );
}
}
数据结构
二叉排序树
算法
/*用函数
实现
如下
二叉排序树
算法: (1) 插入新
结点
(2) 前序、中序、后序遍历二叉树 (3)
中序遍历
的非递归算法 (4) 层次遍历二叉树 (5) 在二叉
树中
查找
给定
关键字(函数返回值为成功1,失败0) (6) ...
二叉排序树
与平衡二叉树的
实现
平衡二叉树是在构造
二叉排序树
的过程中,每当插入一个新
结点
时,首先检查是否因插入新
结点
而破坏了
二叉排序树
的平衡性,若是,则找出其中的最小不平衡子树,在保持
二叉排序树
特性的前提下,调整最小不平衡子
树中
各...
数据结构第5次作业.docx
2. 编程题:输入n个两两互不相等的
整数
,以这些
整数
为关键字
建立
平衡的
二叉排序树
。判断该二叉树是否为平衡的,
输出
判断结果;
输出
该二叉树的
中序遍历
关键字访问次序。 3. 从空树起连续插入以下20个关键字构建m=4的B...
根据
给定
的n个权值构造哈夫曼树。通过遍历此二叉树完成哈夫曼编码。
①根据
给定
的n个权值(w1, w2, …, wn)构成n棵二叉树的集合F={T1, T2, …, Tn},其中每棵二叉树Ti中只有一个带树为Ti的根
结点
; ②在F中选取两棵根
结点
的权值最小的树作为左右子树构造
一棵
新的二叉树,且置其根
结点
的...
算法与数据结构实验:树的应用
1.编写
程序
,根据
给定
的
一棵
二叉树的后序遍历和
中序遍历
结果: (1)
输出
该二叉树的前序遍历结果 (2)判断
给定
的二叉树是否是二叉搜索树 2.编写算法计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章