数据结构和算法经典100题-第23题
2015-12-16 22:56
288 查看
题目:
给定一个有序数组int array
,已知其中没有重复值,用这个有序数组生成一棵平衡二叉树,要求中序遍历结果与数组一致。
题目解析:
OKay,此题很简单,关键点是:拿数组的中间元素做根,然后数组中间元素左边为左子树,右边为右子树。然后递归调用即可。
Okay,no code say what:
路漫漫其修远兮,吾将上下而求…
给定一个有序数组int array
,已知其中没有重复值,用这个有序数组生成一棵平衡二叉树,要求中序遍历结果与数组一致。
题目解析:
OKay,此题很简单,关键点是:拿数组的中间元素做根,然后数组中间元素左边为左子树,右边为右子树。然后递归调用即可。
Okay,no code say what:
class Node { public: Node *left; Node *right; int m_value; Node(int value) { m_value = value; }; ~Node() {}; }; Node* generate(int *array, int size) { int middle = size / 2; Node * node = new Node(array[middle]); if (0 == middle) { return node; } node->left = generate(array, middle); node->right = generate(array+middle, size-middle); return node; } int main(void) { int array[] = {0,1,2,3,4,5}; Node * root = generate(array, 6); return 0; }
路漫漫其修远兮,吾将上下而求…
相关文章推荐
- AVL树-自平衡二叉查找树(Java实现)
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#数据结构之顺序表(SeqList)实例详解
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 数据结构之Treap详解
- 浅析STL中的常用算法