두 갈래 검색 트리
또 두 갈래로 나무를 검색하는 순서가 반복된다.
1. 나무를 짓는 순서는 전체 나무의 모양에 영향을 준다.
2. 자원을 방출하는 것을 잊지 마라
3. 이중 지침과 인용 최적화 프로그램을 사용할 수 있다.
코드의 일부 printf () 는 이전에 설정한 단점으로 무시할 수 있습니다
#include<iostream>
using namespace std;
struct BST
{
char ch;
BST *lson,*rson;
BST()
{
ch=0; //
lson=rson=0;
}
} *root;
BST *insert(BST *p,char x) // ,p ; ,p ,1.x==p->ch 2.x< 3.x>
{//printf("x=%c p==%d
",x,p);;
if(p==NULL)
{
p=new BST;
p->ch=x;
return p;
}
// printf("~");
if(x<p->ch) p->lson=insert(p->lson,x);
if(x>p->ch) p->rson=insert(p->rson,x);
return p;
}
char RE[11];int nRE;
void pre_order(BST *p) // ,p ,p
{
if(p) RE[nRE++]=p->ch;
// cout<<"RE="<<RE<<endl;
if(p->lson) pre_order(p->lson);
if(p->rson) pre_order(p->rson);
}
void Free(BST *p)
{
if(p->lson) Free(p->lson);
if(p->rson) Free(p->rson);
delete p;
}
int main()
{
int n,i,j,len;
char t[11],model[11];
while(scanf("%d",&n),n)
{
root=0;
scanf("%s",t);
len=strlen(t);
for(i=0;i<len;i++) root=insert(root,t[i]);
nRE=0;pre_order(root);RE[nRE]='\0';
strcpy(model,RE);
for(i=1;i<=n;i++)
{
BST *p=0;//printf("~");
scanf("%s",t);len=strlen(t);// printf("!!%s
",t);
for(j=0;j<len;j++) p=insert(p,t[j]);
nRE=0;pre_order(p);RE[nRE]='\0';
if(strcmp(model,RE)==0) printf("YES
");
else printf("NO
");
Free(p);
}
// printf("@");
Free(root);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.