top(): 스택으로 할당된 기억공간에 제일 마지막에 삽입된 자료가 기억된 위치, 스택 포인터 라고도 한다.
boottom(): 스택의 가장 밑바닥
스택(Stack)의 성질
FILO(First In Last Out)
출력에 제한이 있어 Restricted Structure 라고 부르기도 한다.
원소의 추가가 O(1)
원소의 제거가 O(1)
제일 상단의 원소 확인이 O(1)
제일 상단이 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능
선형구조 의 자료구조이다.
스택(Stack)의 알고리즘 예시
C 언어를 이용한 Stack 구현
#include<stdio.h>#include<stdlib.h>// 노드 생성 typedefstructNode{intdata;Node*next;}Node;// top 노드 typedefstructtop{Node*top;}Stack;voidpush(Stack*s,intdata){Node*node=(Node*)malloc(sizeof(Node));node->data=data;node->next=s->top;s->top=node;}intpop(Stack*s){if(s->top==NULL){printf("UnderFlow\n");return-1;}Node*node=s->top;intdata=node->data;s->top=node->next;free(node);returndata;}voidshow(Stack*s){printf("----show----\n");Node*node=s->top;while(node!=NULL){printf("%d\n",node->data);node=node->next;}}intmain(void){Stacks;s.top=NULL;push(&s,3);push(&s,2);push(&s,1);push(&s,4);push(&s,5);push(&s,6);show(&s);pop(&s);show(&s);return0;}