用数组模仿树结构
2006-09-15 10:56
197 查看
/**
* 用数组模仿树结构,原则是左小右大
* treeArr.c
* version:1.0 2006-9-15
* writeby jsp
*/
#include "stdio.h"
void creat(int *nodlist , int *b_tree , int len)
{
int lay,i;//lay 层
b_tree[1] = nodlist[1];
for(i = 2; i < len; i++)
{
lay = 1;
while( b_tree[lay] != 0)//用于判断b_tree[lay]这个节点是否为空如果为空就把nodlist[i]付给它;
{
if(nodlist[i] > b_tree[lay])//判断是左子树还是右子树.如果b_tree[lay]不为空则找b_tree[lay]的子节点
lay = 2 *lay+1;//下个右叶节点
else
lay = 2 *lay;//下个左叶节点
}
b_tree[lay] = nodlist[i];
}
}
void main()
{
int i,index; //index用于存放输入数组的索引号,i循环变量
int data;
int nodlist[16];//输入数组
int b_tree[16];//树结构
index = 0;
for(i = 0 ; i < 16; i++)
{
nodlist[i]=0;
}
do
{
index+=1;
scanf("%d",&data);
nodlist[index] = data;
}while(data != 0);
for(i = 1; i < 16; i++)
{
b_tree[i] = 0;
}
creat(nodlist , b_tree , index);
for(i = 1; i < 16; i++)
{
printf("[%d]:%d/n",i,b_tree[i]);
}
}
* 用数组模仿树结构,原则是左小右大
* treeArr.c
* version:1.0 2006-9-15
* writeby jsp
*/
#include "stdio.h"
void creat(int *nodlist , int *b_tree , int len)
{
int lay,i;//lay 层
b_tree[1] = nodlist[1];
for(i = 2; i < len; i++)
{
lay = 1;
while( b_tree[lay] != 0)//用于判断b_tree[lay]这个节点是否为空如果为空就把nodlist[i]付给它;
{
if(nodlist[i] > b_tree[lay])//判断是左子树还是右子树.如果b_tree[lay]不为空则找b_tree[lay]的子节点
lay = 2 *lay+1;//下个右叶节点
else
lay = 2 *lay;//下个左叶节点
}
b_tree[lay] = nodlist[i];
}
}
void main()
{
int i,index; //index用于存放输入数组的索引号,i循环变量
int data;
int nodlist[16];//输入数组
int b_tree[16];//树结构
index = 0;
for(i = 0 ; i < 16; i++)
{
nodlist[i]=0;
}
do
{
index+=1;
scanf("%d",&data);
nodlist[index] = data;
}while(data != 0);
for(i = 1; i < 16; i++)
{
b_tree[i] = 0;
}
creat(nodlist , b_tree , index);
for(i = 1; i < 16; i++)
{
printf("[%d]:%d/n",i,b_tree[i]);
}
}
相关文章推荐
- 数据结构——数组模仿循环队列
- 数据结构与算法 - 数组
- 数据结构实验之数组二:稀疏矩阵
- 用数组和链表实现栈结构
- 结构指针和数组
- javascript实现扁平数组构建树形结构(多级菜单应用)-优化
- 【C#基础知识】之结构、数组及常用的几种排序方法总结
- 数据结构(C语言第2版)-----数组,广义表,树,图
- 数据结构之栈的数组实现
- c#第5章 变量的更多内容 隐式和显式转换、枚举、结构、数组、
- 结构数组
- 数据结构之数组实现基础队列结构
- 数据结构实训初结构体数组实现学生信息管理
- 数据结构之后缀数组suffix array
- [精]JAVA数组的内存结构详解
- 六、数组与结构
- 数据结构实验之数组二:稀疏矩阵
- java 集合体系结构以及集合和数组的区别
- 数组的应用 结构类型 使用深复制和浅复制 显示员工信息
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想