정중하게 부탁드립니다..^^;
에드윈
#include stdio.h
#include string.h
#define nil -1
#define MaxSize 100
struct tnode {
int left; /* 왼쪽부분트리를가리키는포인터*/
char name[12];
int right; /* 오른쪽부분트리를가리키는포인터*/
};
int sp=8; /* 새로운노드를저장할위치*/
int main(void)
{
struct tnode a[MaxSize]={{ 1,Matilda, 2},{ 3,Candy, 4},
{ 5,Rolla ,nil},{nil,Ann ,nil},
{ 6,Emy , 7},{nil,Nancy,nil},
{nil,Eluza ,nil},{nil,Lisa ,nil}};
char key[12];
int p,old,i;
printf(New name -- ); scanf(%s,key);
p=0; /* 트리탐색*/
while (p!=nil) {
old=p;
if (strcmp(key,a[p].name)=0)
p=a[p].left; // 부모보다 작으면 왼쪽으로 연결한다
else
p=a[p].right;// 부모보다 크면 오른쪽
}
a[sp].left=a[sp].right=NULL;
if (strcmp(key,a[old].name)=0)
a[old].left=sp;
else
a[old].right=sp;
sp++;
for (i=0;isp;i++)
printf(%4d%12s%4d\n,a[i].left,a[i].name,a[i].right);
return 0;
}
이번에 이 소스를 가지고 발표를 해야 합니다 수업시간에..^^
이진트리를 이용하여 문자열을 추가하는건데요...
대충 어떻게 돌아가는지는 알겠는데 자세히 설명 좀 곁들여 주시면 감사하겠습니다
고수님들 부탁드릴께요^^
-
더글러스
아닙니다 소스는 다 이해하고 있지만 제가 모르는 또 다른가가 나올까봐....^^ 나쁘기 생각하지 말아주세여
-
레나
전혀 노력하려는 흔적이 안보이는데 가르쳐줘도 모릅니다.
걍 포기하고 다른 공부를 하심이...