数据结构与算法分析生成N节点随机二叉查找树
来源:互联网 发布:鬼真实存在吗 知乎 编辑:程序博客网 时间:2024/05/21 07:56
/*生成n节点随机二叉查找树,该树具有从1到n的不同关键字*/
#include <stdio.h>
#include <stdlib.h>
typedef struct Node *Position;
typedef struct Node *Tree;
Tree makeRandomTree(int lower,int upper);
void printTree(Tree T);
int RandInt(int i,int j);
struct Node{
int element;
Tree Left;
Tree Right;
};
int RandInt(int i,int j)//生成一个i到j之间的值。
{
int temp;
temp=i+(1.0*rand()/RAND_MAX)*(j-i);
return temp;
}
Tree makeRandomTree(int lower,int upper)//建立一个随机树
{
if(lower<=upper)
{
int num=RandInt(lower,upper);
Tree t;
t=(Tree)malloc(sizeof(struct Node));
if(t==NULL)
{ printf("error");
return NULL;
}
t->element=num;
t->Left=makeRandomTree(lower,num-1);
t->Right=makeRandomTree(num+1,upper);
return t;
}
return NULL;
}
void printTree(Tree T)//前序遍历打印树
{
if(T!=NULL)
{
printf("%d",T->element);
printTree(T->Left);
printTree(T->Right);
}
}
main()
{
Tree t;
t=makeRandomTree(1,10);
printTree(t);
}
#include <stdio.h>
#include <stdlib.h>
typedef struct Node *Position;
typedef struct Node *Tree;
Tree makeRandomTree(int lower,int upper);
void printTree(Tree T);
int RandInt(int i,int j);
struct Node{
int element;
Tree Left;
Tree Right;
};
int RandInt(int i,int j)//生成一个i到j之间的值。
{
int temp;
temp=i+(1.0*rand()/RAND_MAX)*(j-i);
return temp;
}
Tree makeRandomTree(int lower,int upper)//建立一个随机树
{
if(lower<=upper)
{
int num=RandInt(lower,upper);
Tree t;
t=(Tree)malloc(sizeof(struct Node));
if(t==NULL)
{ printf("error");
return NULL;
}
t->element=num;
t->Left=makeRandomTree(lower,num-1);
t->Right=makeRandomTree(num+1,upper);
return t;
}
return NULL;
}
void printTree(Tree T)//前序遍历打印树
{
if(T!=NULL)
{
printf("%d",T->element);
printTree(T->Left);
printTree(T->Right);
}
}
main()
{
Tree t;
t=makeRandomTree(1,10);
printTree(t);
}
阅读全文
0 0
- 数据结构与算法分析生成N节点随机二叉查找树
- 《数据结构与算法分析》--二叉查找树
- 数据结构与算法分析-树、二叉树、二叉查找树
- 生成N个节点随机二叉查找树的函数 具有从1到N的不同的关键字
- 【数据结构与算法分析】二叉查找树与AVL树
- 数据结构与算法分析(Java语言描述)(16)—— 二叉搜索树基础、节点插入、查找
- 数据结构与算法分析-二叉查找树的实现
- 数据结构与算法分析 c++11 查找二叉树 BinarySearchTree
- 数据结构与算法(二叉查找树)
- 数据结构与算法06:二叉查找树
- <数据结构与算法>之二叉查找树
- 数据结构与算法_二叉查找树
- 【算法】数据结构与算法分析学习笔记——各类二叉查找树的吐血整理
- 数据结构与算法分析以层序列出二叉树节点
- 数据结构与算法分析--二叉排序树(二叉查找树,二叉搜索树)的查找、插入和删除操作
- 数据结构与算法JavaScript - 二叉树和二叉查找树
- (数据结构与算法分析 五)------二叉查找树的实现( Java语言描述)
- 二叉查找树 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 从vultr购买到搭ss看世界
- 模块化
- Git学习
- 购物车main
- 【Scikit-Learn 中文文档 】安装 scikit-learn | ApacheCN
- 数据结构与算法分析生成N节点随机二叉查找树
- python IDLE 快捷键使用
- 莫烦PyTorch学习笔记(五)——模型的存取
- 通过宏判断VS编译版本以及系统平台
- 多线程基础学习十一:AbstractQueuedSynchronizer了解
- cat
- IntelliJ IDEA教程
- 文章标题
- Python实现模拟Modbus Master遍历测试Modbus Slave IP是否连通