标签:des style blog color os strong
题意
先给你一个数字n,接着是一串数字,顺序扫描后建立一棵二叉搜索树。然后再陆续给n串数字,判断它们遍历的二叉树和第一个二叉树是否相同。
题目给出的字符串长度不大于10.每个数字在0~9之间。且给出的数字不会有重复。
分析
数据结构的题目,可以直接自定义个二叉树结点的结构来做。但比较复杂,题目已给出数字长度不会大于10.所以直接用静态的链表(即数组)来解就可以了。要是数字的个数太多就不能这样做。
#include<stdio.h> #include<string.h> #define max 512; int main() { int i,j,n,c; int tree[512],tree1[512]; char s[22]; while(scanf("%d",&n)!=EOF&&n!=0) { scanf("%s",s); memset(tree,-1,sizeof(tree)); for(i=0;s[i]!=‘\0‘;i++) { j=0; c=s[i]-‘0‘; while(tree[j]!=-1) { if(c>tree[j]) j=(j+1)*2; if(c<tree[j]) j=(j+1)*2-1; } tree[j]=c; } while(n--) { scanf("%s",s); memset(tree1,-1,sizeof(tree1)); for(i=0;s[i]!=‘\0‘;i++) { j=0; c=s[i]-‘0‘; while(tree1[j]!=-1) { if(c>tree1[j]) j=(j+1)*2; if(c<tree1[j]) j=(j+1)*2-1; } tree1[j]=c; } for(i=0;i<512;i++) if(tree[i]!=tree1[i]) { printf("NO\n"); break; } if(i>=512) printf("YES\n"); } } }
标签:des style blog color os strong
原文地址:http://www.cnblogs.com/xhp956614463/p/3855916.html