이진탐색트리를 만들고 삽입과 삭제 연산을 하는 c프로그램
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. 문제기술

2. 입출력의 예

3. 문제풀이방법

4. 소스프로그램

5. 수행의 예

본문내용

f (s->data > key){
t=&s->left_Child;
s=s->left_Child;
}
else {
t = &s->right_Child;
s = s->right_Child;
}
if (s == NULL)
printf("error\n");
else {
if (s->left_Child == NULL)
*t = s->right_Child;
else {
*t = s->left_Child;
for (temp=s->left_Child; temp->right_Child; temp=temp->right_Child);
temp->right_Child = s->right_Child;
}
free(s);
}
}
void preorder(NODE *ptr) //preorder로 tree를 출력하는 함수
{
if(ptr){
printf("%d ",ptr->data);
preorder(ptr->left_Child);
preorder(ptr->right_Child);
}
}
void inorder(NODE *ptr) //inorder로 tree를 출력하는 함수
{
if(ptr){
inorder(ptr->left_Child);
printf("%d ",ptr->data);
inorder(ptr->right_Child);
}
}
int main() //메인함수
{
int select_num;
pointer = NULL; //일단 pointer는 NULL로 초기화
while (1) {
select_num=menu();
switch(select_num) {
case 1 : insert(); break;
case 2 : del(); break;
case 3 : printf("*****************************************\n");
printf("* Preorder ---> "); preorder(pointer); printf(" *\n");
printf("* Inorder ---> "); inorder(pointer); printf(" *\n");
printf("*****************************************\n"); break;
default: exit(1);
}
}
}
5. 수행의 예

-> 15 8 27 26 42 10 7 21 을 차례로 삽입시킨 후 출력한다.
이렇게 만들어진 tree에 12를 삽입, 10을 제거, 27을 제거를 차례로 수행시킨다.
완성된 tree를 출력한다.
프로그램을 종료시킨다.

-> 21 7 10 42 26 27 8 15 을 차례로 삽입시킨 후 출력한다.
이렇게 만들어진 tree에 12를 삽입, 10을 제거, 27을 제거를 차례로 수행시킨다.
완성된 tree를 출력한다.
프로그램을 종료시킨다.

-> 2 49 35 8 을 차례로 삽입시킨 후 출력한다.
이렇게 만들어진 tree에 3을 삽입, 49를 제거, 2를 제거를 차례로 수행시킨다.
완성된 tree를 출력한다.
프로그램을 종료시킨다.

키워드

  • 가격1,300
  • 페이지수7페이지
  • 등록일2007.01.08
  • 저작시기2006.11
  • 파일형식한글(hwp)
  • 자료번호#387347
본 자료는 최근 2주간 다운받은 회원이 없습니다.
  • 편집
  • 내용
  • 가격
청소해
다운로드 장바구니