목차
1. 구현환경
2. 프로그램 특징 및 설명
3. 참고 문헌
4. 소스코드
2. 프로그램 특징 및 설명
3. 참고 문헌
4. 소스코드
본문내용
->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);
}
}
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);
}
}
추천자료
은행합병이 중소기업대출에 미치는 영향
재가노인복지서비스의 현황과 과제
GIS 용어정리 N
정신간호 실습 case study (망상장애, 정신분열)
[학위논문] 의료 CRM 시스템 운영이 병원 경영개선에 미치는 영향
폐암 케이스
Acute pancreatitis에 대한 사례연구
EDI기술 및 시장동향분석 2016 학점A+
뇌경색 케이스
성인간호실습정형외과레포트
응급실 케이스(ER case study)- 경막하출혈(Subdural Hemorrhage)
체제적 교수설계모형
[논문 연구방법론 설정관련]
[원가회계][원가회계 분류][원가회계 환경][원가회계 제조][원가회계 통신업][원가회계 관점]...