오늘은 Linked List를 사용한 Stack을 구현해 보도록 하겠습니다.
Stack의 기능을 보여주는 역할이기 때문에 코딩은 막 코딩인 점 양해해 주시기 바랍니다.
#include <stdio.h> typedef struct _Data Data *head; void init_linkedlist(void); int main() init_linkedlist(); print_list(); void init_linkedlist(void) head -> next = tail; void push(int inputValue) newData = (Data *) malloc(sizeof(Data)); newData -> value = inputValue; void print_list(void) printData = head -> next; while (1) printf("%d is popup.\n", returnVal); |
위의 프로그램은 LIFO 방식인 stack의 역할을 Linked List를 사용하여 구현한 내용입니다.
위의 그림과 같이 4개의 숫자가 논리적으로 Stack에 저장되어 지며 실제로는 Linked List로 구현되어있음을 확인할 수 있습니다.
실행 결과는 다음과 같습니다.
위와 같이 10 7 4 3 순서대로 Stack에 Value가 들어 있음을 확인할 수 있습니다.
pop up은 stack의 LIFO 특성상 늦게 들어온 value가 가장 빨리 나가므로 10 -> 7 -> 4 -> 3의 순서로 출력 됨을 확인 할 수 있습니다.
'Common Programming > C' 카테고리의 다른 글
C언어 String 함수 (0) | 2013.10.23 |
---|