UVA712-S-Trees
2013-08-22 21:23
316 查看
题意:输入n,n为数的层数,然后输入最底层的每个节点的叶子节点的值,输入m条指令,从头节点开始,0为向左,1为向右,最后输出指令所要的字符串
思路:用数组模拟,假设头节点为1,之后每个节点的左右节点分别为2 * k,2 * k + 1
思路:用数组模拟,假设头节点为1,之后每个节点的左右节点分别为2 * k,2 * k + 1
#include<stdio.h> #include<string.h> #include<math.h> int main() { int n, m, t = 0; char s[100], str[150], temp[20]; int arr[150], answer[150]; while (scanf("%d", &n) != EOF && n) { getchar(); gets(s); scanf("%s", str); int p = pow(2, n); for(int i = p, j = 0; i < 2 * p, j < p; i++, j++) arr[i] = str[j] - '0'; scanf("%d", &m); getchar(); int l, cnt = 0; for(int i = 0; i < m; i++) { int k = 1; gets(temp); l = strlen(temp); for(int j = 0; j < l; j++) { if (temp[j] - '0' == 0) k = k * 2; else k = k * 2 + 1; } answer[cnt++] = arr[k]; } printf("S-Tree #%d:\n", ++t); for(int i = 0; i < m; i++) printf("%d", answer[i]); printf("\n\n"); } return 0; }
相关文章推荐
- UVa 712 S-Trees
- Uva - 712 - S-Trees
- UVa 712 S-Trees(满二叉树数组保存与编号)
- UVA - 712 S-Trees
- UVA 712 S-Trees
- UVa 712 - S-Trees
- UVa 712 - S-Trees
- UVA - 712 S-Trees
- UVA 712-S-Trees
- UVa 712/POJ 1105/ZOJ 1150 S-Trees(用数组模拟二叉树)
- Uva - 712 - S-Trees
- 习题6-2 S树(S-Trees, UVa 712)
- UVa 712 - S-Trees解题报告
- UVA 712 S-Trees
- UVA - 712 S-Trees
- uva 712 S-Trees
- UVA 712 S-Trees
- UVa-712-S-Trees
- UVA 712(p176)----S-Trees
- 【UVa 712】S-Trees