生成N个节点随机二叉查找树的函数 具有从1到N的不同的关键字
来源:互联网 发布:php content length 编辑:程序博客网 时间:2024/06/04 19:14
数据结构与算法分析——c语言描述 练习4.29
本来想用一个长度为N的数组记录是否生成过这个随机数,然后在插入到树中。
看了作者的给的代码瞬间惊讶。还能这样做。
#include"fatal.h"#include<stdlib.h>typedef int ElementType;struct TreeNode;typedef struct TreeNode *Position;typedef struct TreeNode *SearchTree;struct TreeNode {ElementType element;SearchTree left;SearchTree right;};int RandInt(int i, int j) {int temp;temp = i + (1.0*rand() / RAND_MAX)*(j - i);return temp;}SearchTree makeRandomTree1(int lower, int upper) {if (lower <= upper) {SearchTree t;int randomNum = RandInt(lower, upper);t = malloc(sizeof(struct TreeNode));if (t == NULL)Error("OUT OF MEMORY");t->element = randomNum;t->left=makeRandomTree1(lower, randomNum - 1);t->right = makeRandomTree1(randomNum + 1, upper);return t;}return NULL;}SearchTree makeRandomTree(int n) {return makeRandomTree1(1, n);}void dir(SearchTree t) {if (t) {printf("%d ", t->element);dir(t->left);dir(t->right);}}int main() {SearchTree t = makeRandomTree(90);dir(t);}
0 0
- 生成N个节点随机二叉查找树的函数 具有从1到N的不同的关键字
- 生成关键字是1~N的随机二叉查找树的函数
- 随机生成n个不同的整数
- 具有N个节点的二叉树有多少种形态,居然有计算公式
- 关于随机生成N个不同整数的问题
- 随机生成n个不同的数字小组合作编写
- 随机生成n个不同的数字-小组合作编写
- 给一个正整数n,求从1到n能构造多少种不同形状的二叉查找树(BST)
- 二叉树系列---求包含n个节点的二叉查找树的种类数
- 如何设计一个高效算法从N个正整数中,随机选取n个不同的随机数 n<=N
- LeetCode96_Unique Binary Search Trees(求1到n这些节点可以组成多少种不同的二叉查找树) Java题解
- 生成k个不同的随机数,从m到n,并输出最大值的程序代码
- C++生成n个指定1到 n 不同的随机数
- 随机生成n个字符的vbscript函数
- n个节点总共能创建几种不同的二叉树
- 返回n个随机生成的数组
- n个节点的二叉树的数目
- n个节点组成二叉树的形态有几种
- C++线程池
- spring如何下载源码和jar包
- 第三章 使用CSS技术美化
- #leetcode# 344 Reverse String
- 并发编程
- 生成N个节点随机二叉查找树的函数 具有从1到N的不同的关键字
- R语言︱数据规范化、归一化
- 线性表
- Jpcap简介(转)
- bzoj3676【APIO2014】回文串
- 栈和队列
- queue队列容器
- while try catch
- iOS的类的扩展