PTA 04-树6 Complete Binary Search Tree 完全二叉搜索树的构建

一、输入

第一行输入N
第二行输入N个数,用这N个数构建唯一的完全二叉搜索树

二、输出

输出构建好的完全二叉搜索树,层序输出

三、示例

1.输入

10
1 2 3 4 5 6 7 8 9 0

2.输出

6 3 8 1 5 7 9 0 2 4

四、代码 — C语言实现

思路:

  1. 将序列存到数组CBT中,再将数组排序,就得到一个按层级遍历从小到大排列的完全二叉树

  2. 再对完全二叉树进行中序遍历,每次中序遍历节点输出的时候,把数组CBT(完全二叉树)里的元素按顺序(由小到大)赋给另一个数组CBST(完全二叉搜索树)的当前下标。因为二叉搜索树中序遍历是先输出小值,再输出大值

  3. 即先得到完全二叉树,再通过完全二叉树固定节点位置,通过二叉搜索树中序遍历是升序序列的特点,将中序遍历先遍历得到的节点值改为最小值,依次更改即可得到完全二叉搜索树。利用数组储存是关键

实现:

#include "stdio.h"
int CBT[1002];	//储存完全二叉树
int CBST[1002];	//储存完全二叉搜索树
int n; //输入的二叉树节点数
int index = 1;//CBST数组的初始下标

void sort();	//将数组升序排序
void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值