#include <stdio.h> #include <stdlib.h> typedef struct _node { int data; struct _node *link; }_node; typedef struct _stack { _node *top; }_stack; void init(_stack *s) { s->top = NULL; } int is_empty(_stack *s) { return (s->top == NULL); } void push(_stack *s, int data) { _node *temp; temp = (_node *)malloc(sizeof(_node)); temp->data = data; temp->link = s->top; s->top = temp; } int pop(_stack *s) { int item; if (is_empty(s)) { printf("empty stack!\n"); return -1; } else { _node *temp; temp = s->top; item = temp->data; s->top = s->top->link; free(temp); return item; } } int peek(_stack *s) { if (!is_empty(s)) return s->top->data; } void main() { int i; _stack s; init(&s); for (i = 1; i <= 5; i++) push(&s, i); printf("pop = %d\n",pop(&s)); printf("peek = %d\n", peek(&s)); printf("pop = %d\n", pop(&s)); } | cs |
'NOTE > Algorithm' 카테고리의 다른 글
자료구조) Graph (0) | 2015.08.25 |
---|---|
자료구조) QuickSort (0) | 2015.08.25 |
자료구조) linked_queue (0) | 2015.08.25 |
dovelet) maze 최단 거리 미로 (0) | 2015.08.25 |
uva_10074) Take the Land (0) | 2015.08.21 |