프로그래밍 언어

리스트 - 입력받은 순서대로 출력하기

벌게진눈 2013. 8. 28. 15:22
반응형

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct _list{
 char name[10];
 struct _list *Next;
}list;
list *head, *end, *temp;

void space(void);
void display(void);
void insert(list*);

int main(void)
{
 int i, num = 0;
 
 space();

 printf("몇명 입력하시겠습니다?");
 scanf("%d", &num);
 
 for(i = 0; i<num; i++)
 {
  temp = (list *)malloc(sizeof(list));
  printf("%d번째 :", i+1);
  scanf("%s", temp->name);
  insert(temp);
 }

 display();
 printf("\n");
 return 0;
}

void space(void)
{
 head = (list *)malloc(sizeof(list));
 end = (list*)malloc(sizeof(list));
 head -> Next = head;
 end -> Next = end;
}

void insert(list *ptr)
{
 list *indexPtr;
 if(head -> Next == head){
  head -> Next = ptr;
  ptr -> Next = end;
 }
 else{
  indexPtr = head -> Next;
  while(indexPtr -> Next != end)
   indexPtr = indexPtr -> Next;

  ptr -> Next = end;
  indexPtr -> Next = ptr;
 }
}

void display(void)
{
 list *ptr;

 ptr = head -> Next;
 while(ptr != end){
  printf("Name : %s\n", ptr -> name);
  ptr = ptr -> Next;
 }
}

 

반응형