1043. Is It a Binary Search Tree (25)
来源:互联网 发布:cas php client 编辑:程序博客网 时间:2024/06/05 06:24
考察建立二叉树,以及树的遍历
#include<iostream>#include<vector>#include<queue>typedef struct Node{int key;Node* left;Node* right;Node(Node* _l = NULL, Node* _r = NULL, int _k = -1):left(_l), right(_r),key(_k){};}Node;void InsertTree(Node* &tree, int key){Node** p = &tree;while((*p) != NULL){if( key < (*p)->key )p = &(*p)->left;else p = &(*p)->right;}(*p) = new Node;(*p)->key = key;}void ReleaseTree(Node* tree){std::queue<Node*> q;q.push(tree);while(!q.empty()){Node* p = q.front();q.pop();if(p){q.push(p->left);q.push(p->right);delete p;}}}void TravelRootLR(Node* tree, std::vector<int>& v){if(tree == NULL) return;v.push_back(tree->key);TravelRootLR(tree->left, v);TravelRootLR(tree->right, v);}void TravelRootRL(Node* tree, std::vector<int>& v){if(tree == NULL) return;v.push_back(tree->key);TravelRootRL(tree->right, v);TravelRootRL(tree->left, v);}void TravelLRRoot(Node* tree, std::vector<int>& v){if(tree == NULL) return;TravelLRRoot(tree->left, v);TravelLRRoot(tree->right, v);v.push_back(tree->key);}void TravelRLRoot(Node* tree, std::vector<int>& v){if(tree == NULL) return;TravelRLRoot(tree->right, v);TravelRLRoot(tree->left, v);v.push_back(tree->key);}int main(){int n;while(scanf("%d",&n)!=EOF){std::vector<int> inputVec(n);for(int i = 0; i < n; ++i)scanf("%d",&inputVec[i]);//build treeNode* tree = NULL;for(int i = 0; i < n; ++i)InsertTree(tree, inputVec[i]);//get RootLR & RootRL & RLRootstd::vector<int> t1, t2, t3;TravelRootLR(tree, t1);TravelRootRL(tree, t2);//judge//int size = (int)t3.size();//if( IsSame(inputVec, t1) || IsSame(inputVec, t2) )if(inputVec == t1){printf("YES\n");TravelLRRoot(tree, t3);int size = (int)t3.size();for(int i = 0; i < size-1; ++i)printf("%d ", t3[i]);printf("%d\n", t3[size-1]);}else if(inputVec == t2){printf("YES\n");TravelRLRoot(tree, t3);int size = (int)t3.size();for(int i = 0; i < size-1; ++i)printf("%d ", t3[i]);printf("%d\n", t3[size-1]);}else {printf("NO\n");}ReleaseTree(tree);}return 0;}
- 1043. Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- 1043.Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- 1043. Is It a Binary Search Tree
- PAT A 1043. Is It a Binary Search Tree (25)
- PAT-A-1043. Is It a Binary Search Tree (25)
- pat-a 1043. Is It a Binary Search Tree (25)
- Is It a Binary Search Tree (25)
- 1043. Is It a Binary Search Tree (25)
- 1043. Is It a Binary Search Tree (25)—PAT
- 浅谈spring——Bean的生命周期(二)
- 管理自己[Managing Oneself]
- unsigned char 和 singed char 分析
- Unicode and ANSI
- 音视频基础 、IPB帧及其特点
- 1043. Is It a Binary Search Tree (25)
- Openbravo如何新建一个调用
- 简单聊天室1
- 学习:java设计模式—分类
- The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
- 【排序算法】归并排序(C++实现)
- 写在前面
- 1044. Shopping in Mars (25)
- Shell编程基础 Ubuntu