데이터 구조 이 진 트 리 의 옮 겨 다 니 기 (2)

데이터 구조 이 진 트 리 의 옮 겨 다 니 기 (2)
1. 이 진 트 리 는 이 진 트 리 로 저장 합 니 다. 알고리즘 을 작성 할 때 먼저 검색 값 이 x 인 노드 를 옮 겨 다 니 며 바늘 을 찾 습 니 다. 그렇지 않 으 면 NULL 로 돌아 갑 니 다.
<span style="font-size:18px;">status serch_x(BinTree t,TreeType x){
	if(!t)
		return NULL; //    
	if(t->data==x){
		return t;//     
		else{
			p=serche_x(p->lchild,x); //     
			if(p)
				return p;
			else
				return serch_x(p->rchild,x)  </span><span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif;">//     </span><span style="font-size:18px;">
     
		}
	}
}</span>

2. 이 진 트 리 는 이 진 트 리 로 저장 되 고 알고리즘 을 작성 할 때 이 진 트 리 의 첫 번 째 노드 의 지침 을 되 돌려 야 합 니 다.
<span style="font-size:18px;"><span style="font-size:18px;">status serch_x(BinTree  t){
	p=t;
	if(p){
		while(p->lchile||p->rchild){   //   
			while(p->lchild)   //  p             
				p=p->lchild;
				if(p->rchild)
					p=p->rchild;
		}
	}
}</span></span>

3. 이미 알 고 있 는 이 진 트 리 의 우선 순위 서열 과 중간 순서 서열 은 각각 2 개의 1 차원 배열 pre 와 ino 에 저장 되 어 있 으 며, 알고리즘 을 작성 하여 이 이 진 트 리 의 이 진 트 리 링크 를 만 듭 니 다.
<span style="font-size:18px;">status create(char *pre,char *ino,int n){
if(n<0)
return NULL;
p=(BinTree)malloc(sizeof(BiTNode));
p->data=*pre;  //   
for(q=ino;q<ino+p,++q){ //            
if(*ino==*pre)
break;
}
k=q->ino;    //       
p->lchild=create(pre+1,ino,k);
p->rchild=create(pre+1+k,ino+1,n-1-k);
return p;
}</span>

좋은 웹페이지 즐겨찾기