九度 题目1009:二叉搜索树 (静态数组构建二叉树\二叉树的数组实现)
2015-02-04 11:15
253 查看
题意:
给定序列,将序列中的数字一个一个插入到二叉查找树中。
问不同的序列,最终生成的二叉查找树是否相同。
可以用静态数组构建二叉树。
代码:
给定序列,将序列中的数字一个一个插入到二叉查找树中。
问不同的序列,最终生成的二叉查找树是否相同。
可以用静态数组构建二叉树。
代码:
#include <iostream> #include <string> #include <cstring> using namespace std; int n; string s; int a[1024]; int b[1024]; void create_tree(const string& s, int a[]) { for (size_t i = 0; i < s.size(); ++ i) { // 'j' should be start by 1, // or it might cause infinity loop when 'j=2*j' excuted for (int j = 1; j < 1024; ) { if (a[j] == -1) { a[j] = s[i]; break; } else if (a[j] > s[i]) { j = 2 * j; } else { j = 2 * j + 1; } } } } int main() { while (cin >> n, n) { memset(a, -1, sizeof(a)); cin >> s; create_tree(s, a); for (int i = 0; i < n; ++ i) { memset(b, -1, sizeof(b)); cin >> s; create_tree(s, b); int j = 0; for (; j<1024 && a[j]==b[j]; ++ j) {} cout << (j==1024? "YES": "NO") << endl; } } return 0; }
相关文章推荐
- 静态数组实现的二叉搜索树
- 题目1009:二叉搜索树(C语言实现)
- 九度题目1009:二叉搜索树
- 九度OJ,题目1009-二叉搜索树
- 九度 oj 题目1009:二叉搜索树
- 九度题目1009:二叉搜索树
- 九度OJ,题目1009-二叉搜索树
- c语言_构建一个静态二叉树实现方法
- 九度OJ-题目1009 二叉搜索树
- 九度oj 题目1009:二叉搜索树
- JD 1009:二叉搜索树(静态数组建树)
- 九度OnlineJudge题目1009:二叉搜索树
- 【九度】题目1009:二叉搜索树
- 求二叉树的后序遍历 C语言 数组实现
- 静态数组实现栈
- C++ 二叉树的构建,先序/中序/后序的递归/非递归实现
- 静态数组实现双向栈
- 静态数组实现循环队列
- 静态数组实现双向栈
- 九度题目36:二叉搜索树(判断是否是相同二叉搜索树)