본문 바로가기

C언어/강의

2010년 11월 30일 화요일 구조체의 정적 연결리스트 (static linked list)

정적 연결리스트 (static linked list)
#include <stdio.h>

typedef struct test
{
  int iNum;
  struct test *Next;
}TEST;

int main()
{
  TEST A1={1, };
  TEST A2={2, };
  TEST A3={3, };
  TEST A4={4, };
  TEST A5={5, };
  TEST A6={6, };
  TEST *p;
  
  p = &A1;
//  A1.Next = &A2;  p->&A1과 같다
  p->Next=&A2;
  A2.Next=&A3;
  A3.Next=&A4;
  A4.Next=&A5;
  A5.Next=&A6;
  
  printf("A1.iNum : %d\n", p->iNum);
  printf("A2.iNum : %d\n", A1.Next->iNum);
  printf("A3.iNum : %d\n", A2.Next->iNum);
  printf("A4.iNum : %d\n", A3.Next->iNum);
  printf("A5.iNum : %d\n", A4.Next->iNum);
  printf("A5.iNum : %d\n\n", A5.Next->iNum);
  
  printf("A1.iNum : %d\n", p->iNum);
  printf("A2.iNum : %d\n", p->Next->iNum);
  printf("A3.iNum : %d\n", p->Next->Next->iNum);
  printf("A4.iNum : %d\n", p->Next->Next->Next->iNum);
  printf("A5.iNum : %d\n", p->Next->Next->Next->Next->iNum);
  printf("A6.iNum : %d\n\n", p->Next->Next->Next->Next->Next->iNum);
  
  return 0;
}
위의 소스에서   A3.Next=&A4; 을 주석처리해서 삭제할경우 결과가 어떻게 나오는지 확인해보자
위의 소소에 printf를 너무 난발해서 보기가 싫다면 아래와 같이 고쳐서 실행해 보자.