数据结构顺序队列实现

代码如下:

#include <iostream>
using namespace std;//定义标示符
#define MAX 20
/* 生成二叉树思路:
所有结点都需要和根结点比较大小,小于根结点的结点放在左子树,
反之,大于根结点的结点放在右子树。
本算法需要定义两个数组,数组b_tree用于存储最终的二叉树,数组node用于
保存结点数值,为了使数组的下标和结点的编号相对应,b_tree[0]不存储数据,
从b_tree[1]开始存储。
*/
void Create_bTree(int *b_tree, int *node, int len)
{
int i;
int level;//定义某个整数
b_tree[1] = node[1];//从b_tree[1]开始存储
for (i = 2; i < len; i++)
{
level = 1;
while (b_tree[level] != 0) //结点为空,退出循环,进行存储
{
if (node[i] < b_tree[level])
level = 2 * level;
else
level = 2 * level + 1;
}/*所有结点都需要和根结点比较大小,小于根结点的结点放在左子树,
反之,大于根结点的结点放在右子树。*/
b_tree[level] = node[i];//进行存储
}
}
int main()
{
int b_tree[MAX] = { 0 }; //初始为空
int node[11] = { 0,8,6,7,4,2,5,15,9,19,16 };//8是根结点
Create_bTree(b_tree, node, 11);
for (int i = 1; i < MAX; i++)
{
cout << b_tree[i] << "\t";
if (i % 5 == 0)
cout << endl;
}
cout << endl;
system("pause");//执行系统环境中的pause命令,冻结屏幕,用户按任意键结束。
return 0;
}

运行结果如下:

数据结构顺序队列实现_数组


欢迎您关注我的微信公众号:学习微站(studysth)

数据结构顺序队列实现_子树_02