Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 591 Accepted Submission(s): 329
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include <queue> #include <algorithm> using namespace std; typedef struct node { int data; struct node *ll; struct node *rr; }Binode, *Bitree; void creat_sort_Bitree(Bitree &root, int key) { if(root==NULL){ root=new Binode;//一种类型 root->data=key; root->ll=NULL; root->rr=NULL; return ;//插入到二叉排序树上成功 返回 } else{ if(key < root->data){ creat_sort_Bitree(root->ll, key); }else{ creat_sort_Bitree(root->rr, key); } } } queue<char>q; void get_aim(Bitree &root, int key) { if(root->data == key){ return; }else{ if(root->data > key){ q.push(‘E‘); get_aim(root->ll, key); } else{ q.push(‘W‘); get_aim(root->rr, key); } } } int main() { int tg; scanf("%d", &tg); int n, i, j, dd, m; Bitree root; while(tg--){ root=NULL; //初始化root必须为空! 这个root的值在确定了根节点后是不会改变的 scanf("%d", &n); while(n--){ scanf("%d", &dd); creat_sort_Bitree(root, dd); } scanf("%d", &m); while(m--){ scanf("%d", &dd); //在二叉排序树中将找出来 while(!q.empty()) q.pop();//全局变量队列记得清空后在使用 get_aim(root, dd); while(!q.empty()){ printf("%c", q.front()); q.pop(); }printf("\n"); } } return 0; }
2015 ACM/ICPC Asia Regional Changchun Online HDU 5444 Elven Postman【二叉排序树的建树和遍历查找】
原文:http://www.cnblogs.com/yspworld/p/4811282.html