이진탐색트리 report
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

이진탐색트리 report에 대한 보고서 자료입니다.

목차

1. 구현환경

2. 프로그램 특징 및 설명

3. 참고 문헌

4. 소스코드

본문내용

,s->name)<0)
s->left=u;
else
s->right=u;
else
*r = u;
fclose(fp);
}
void delname(node** r, char* n, char* e){
//int compresult1, compresult2;
FILE* fp;
node *s, *t, *u, *v, *q;
s=NULL;
q=*r;
fp = fopen(\"input_data.txt\",\"a\");
while(q!=NULL && strcmp(n,q->name)!=0 && strcmp(e,q->add)!=0){
s=q;
if(strcmp(n,q->name)<0)
q=q->left;
else
q=q->right;
}
if(q==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
fprintf(fp,\"DELETE %s %s\\t\\n\",n,e);
if(q->left==NULL && q->right==NULL){
if(s!=NULL){
if(s->left==q)
s->left=NULL;
else
s->right=NULL;
}
else *r=NULL;
}
else if(q->left==NULL || q->right==NULL){
u=(q->left!=NULL)?q->left:q->right;
if(s!=NULL){
if(s->left==q)
s->left=u;
else
s->right=u;
}
else *r=u;
}
else{
t=q;
v=q->right;
while(t->left!=NULL){
t=v;
v=v->left;
}
if(t->left==v)
t->left=v->right;
else
t->right=v->right;
q->name=v->name;
q->tel=v->tel;
q->add=v->add;
q=v;
}
free(q);
fclose(fp);
}
void deltel(node **r, char* t){
FILE *fp;
node *s, *a, *u, *v, *q;
s=NULL;
q=*r;
fp = fopen(\"input_data.txt\",\"a\");
while(q!=NULL && strcmp(t,q->tel)!=0){
s=q;
if(strcmp(t,q->tel)<0)
q=q->left;
else
q=q->right;
}
if(q==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
fprintf(fp, \"DELETE %s\\t\\n\",t);
if(q->left==NULL && q->right==NULL){
if(s!=NULL){
if(s->left==q)
s->left=NULL;
else
s->right=NULL;
}
else *r=NULL;
}
else if(q->left==NULL || q->right==NULL){
u=(q->left!=NULL)?q->left:q->right;
if(s!=NULL){
if(s->left==q)
s->left=u;
else
s->right=u;
}
else *r=u;
}
else{
a=q;
v=q->right;
while(v->left!=NULL){
a=v;
v=v->left;
}
if(a->left==v)
a->left=v->right;
else
a->right=v->right;
q->name=v->name;
q->tel=v->tel;
q->add=v->add;
q=v;
}
free(q);
fclose(fp);
}
void findname(node** r, char* n, char* e){
node* s;
s=*r;
while(s!=NULL && strcmp(n,s->name)!=0 && strcmp(e,s->add)!=0){
if(strcmp(n,s->name)<0)
s=s->left;
else
s=s->right;
}
if(s==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
update(s);
}
void findtel(node** r, char* t){
node* s;
s=*r;
while(s!=NULL && strcmp(t,s->tel)!=0){
if(strcmp(t,s->tel)<0)
s=s->left;
else
s=s->right;
}
if(s==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
update(s);
}
void update(node *s){
int i,k,j=1;
char n[20];
char t[14];
char eid[15];
char edo[15];
char email[30];
char d[2]= {\'@\'};
printf(\"\\n\");
printf(\"\\tNAME:\");
scanf(\"%s\",n);
while(1){
printf(\"\\tTELEPHON(***-****-**** 형태로):\");
scanf(\"%s\",t);
if(t[3] == \'-\' && t[8] == \'-\')
break;
else{
printf(\"입력이 잘못되었습니다.\\n\");
}
}
while(j){
printf(\"\\tE-mail ID:\");
scanf(\"%s\",eid);
if(!strchr(eid,\'@\') && !strchr(eid,\'.\'))
break;
else
printf(\"입력이 잘 못 되었습니다. 재입력하세요\\n\");
}
while(j){
printf(\"\\n\\tE-mail domain:\");
scanf(\"%s\", edo);
i=strlen(edo);
for(k=0;k if(edo[k]==\'.\'){
j=0;
break;
}
}
if(j==1)
printf(\"입력이 잘 못 되었습니다. 재입력하세요\\n\");
}
strcpy(email,eid);
strcat(email,d);
strcat(email,edo);
strcpy(s->name, n);
strcpy(s->tel,t);
strcpy(s->add,email);
printf(\"\\n\");
}
void print(node *r){
if(r){
print(r->left);
printf(\"\\n \");
printf(\"\\t%s\\t\",r->name);
printf(\"\\t%s\\t\",r->tel);
printf(\"\\t%s\",r->add);
print(r->right);
}
}
  • 가격3,300
  • 페이지수13페이지
  • 등록일2012.04.18
  • 저작시기2010.6
  • 파일형식한글(hwp)
  • 자료번호#740971
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니