思路:建好二叉搜索树后,用二叉树的历遍去判断就好
#include#include using namespace std;typedef struct tree{ tree *r,*l; int num;}tree;tree *root;int a[30],b[30],count=0;tree *creat(int x){ tree *t=(tree *)malloc(sizeof(tree)); t->r=0; t->l=0; t->num=x; return t;}tree *inster(tree *s,int x){ tree *t; if(s==NULL) { t=creat(x); s=t; } else { if(x<=s->num) s->l=inster(s->l,x); else s->r=inster(s->r,x); } return s;}void libian(tree *root){ if(root!=NULL) { b[count++]=root->num; libian(root->l); libian(root->r); }}int main(){ int n; while(scanf("%d",&n)>0&&n) { count=0; root=NULL; char str[30]; scanf("%s",str); int len=strlen(str); int i,j; for(i=0;i =len) printf("YES\n"); } } return 0;}