스택의 정의
- 선형 리스트에서 데이터의 삽입과 삭제를 한 방향에서 이루어지도록 한 것.
|
스택의 기본연산
|
스택의 생성
#define STACK_SIZE 100 typedef struct { char *item1[20] int item2; ······· }Element;
Element stack[STACK_SIZE]; int top = -1 //스택을 공백 상태로 초기화시키기 위해서 top의 값을 -1로 설정 |
스택의 포화/공백 상태 검사 함수
bool IsFull(int top) { if(top >= STACK_SIZE-1) return true; //포화상태 else return false; }
bool IsEmpty(int top) { if(top == 1) return true; //공백 스택 상태 else return false; //공백이 아닌 스택 상태 } |
스택의 삽입 / 삭제 함수
void Push(int *top, Element item) // 삽입 { if(IsFull(*top) //스택의 포화 상태 검사 { stack_full(); //포화상태인 경우 return; } stack[++(*top)] = item; //top의 값을 증가 후 item 삽입 }
Element Pop(int *top) // 삭제 { if(IsEmpty(*top)) //스택의 공백 상태 검사 { return stack_empty(); //공백 상태인 경우 오류키 반환 } return stack[(*top)--]; //값을 반환 후 top 감소 } |
'Programming Study > 자료구조' 카테고리의 다른 글
리스트 - 원형 연결 리스트(Circular Linked List) (0) | 2014.09.02 |
---|---|
리스트 - 단순 연결 리스트(Simply Linked List) (0) | 2014.09.02 |
리스트(List) (0) | 2014.09.02 |
큐(Queue) (1) | 2014.09.01 |
자료구조의 구분 (0) | 2014.09.01 |