PKU 1577 Falling Leaves
来源:互联网 发布:nestopia mac 连发 编辑:程序博客网 时间:2024/06/06 20:05
Description:
Figure 1- It may be empty.
- It may have a root node. A node has a letter as data and refers to a left and a right subtree. The left and right subtrees are also binary trees of letters.
- Empty trees are omitted completely.
- Each node is indicated by
- Its letter data,
- A line segment down to the left to the left subtree, if the left subtree is nonempty,
- A line segment down to the right to the right subtree, if the right subtree is nonempty.
- If the tree is empty, then the preorder traversal is empty.
- If the tree is not empty, then the preorder traversal consists of the following, in order
- The data from the root node,
- The preorder traversal of the root's left subtree,
- The preorder traversal of the root's right subtree.
输入说明
The input will contain one or more data sets. Each data set is a sequence of one or more lines of capital letters. The lines contain the leaves removed from a binary search tree in the stages described above. The letters on a line will be listed in increasing alphabetical order. Data sets are separated by a line containing only an asterisk ('*'). The last data set is followed by a line containing only a dollar sign ('$'). There are no blanks or empty lines in the input.
输出说明
For each input data set, there is a unique binary search tree that would produce the sequence of leaves. The output is a line containing only the preorder traversal of that tree, with no blanks.
输入样例
BDHPYCMGQK*ACB$
输出样例
KGCBDHQMPYBAC
题解:
二叉树的插入和读取,右对齐的,就是在找的时候比大小,比他大的就排在右边,直到右边有空位,比他小的就排在左边,直到左边有空位。
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>#include<iostream>#include<math.h>#include<queue>#include<stack>#include<vector>using namespace std;char sh[1000][1000];int c;typedef struct ER{char bit;int l,r,p;}ER;ER er[10010];void pai(int a,char b){int i,j,k,l,m,t,n;if(b>er[a].bit){if(er[a].r==0){er[a].r=++c;er[c].bit=b;}else pai(er[a].r,b);}else{if(er[a].l==0){er[a].l=++c;er[c].bit=b;}else pai(er[a].l,b);}}void pri(int i){printf("%c",er[i].bit);if(er[i].l!=0)pri(er[i].l);if(er[i].r!=0)pri(er[i].r);}void qing(){int i,j;for(i=0;i<1000;i++)sh[i][0]='\0';}int main(){ER root,temp,nel,ner;int i,j,k,l,m,n,leni,ye,len;char a,b,c,d;while(1){memset(er,0,sizeof(er));for(i=0;sh[i-1][0]!='*'&&sh[i-1][0]!='$';i++)scanf("%s",&sh[i]);leni=i-2;er[0].bit=sh[leni][0];c=0;for(i=leni-1;i>=0;i--)for(j=0;j<(len=strlen(sh[i]));j++) { pai(0,sh[i][j]); }pri(0);printf("\n");if(sh[leni+1][0]=='$')break;}return 0;}
- PKU 1577 Falling Leaves
- POJ-1577-Falling Leaves
- POJ 1577 Falling Leaves
- POJ 1577 Falling Leaves
- poj 1577 Falling Leaves
- POJ 1577 Falling Leaves
- poj 1577 Falling Leaves
- zoj 1700 || poj 1577 Falling Leaves(BST)
- poj 1577 Falling Leaves
- 二叉树 Poj 1577 Falling Leaves
- POJ 1577 Falling Leaves 二叉树题解
- poj-1577 Falling Leaves(搜索二叉树)
- POJ 1577 Falling Leaves 二叉树操作
- POJ 1577 Falling Leaves 二叉树
- poj 1577 Falling Leaves(二叉搜索树)
- ZOJ 1700 Falling Leaves
- ZOJ-1700 falling leaves
- 699 - The Falling Leaves
- javaScript 中的 with 和 this 的用法
- new和instanceof的内部机制
- sql 语句 的一些写法
- 计算机网络3
- cf 222B 数组行列交换操作
- PKU 1577 Falling Leaves
- 上百个Android开源项目分享
- OD根据API下断点调试程序
- Handler的用法总结
- RMAN 备份异机恢复 并创建新DBID
- Yii引入PHPExcel修改其自动加载方法
- Android 4.1拿什么跟WP8、iOS 6斗
- chrome浏览器扩展
- UIMenuController的使用,对UILabel拷贝以及定制菜单