본문 바로가기
기초과목/자료구조

[C/C++] 스택 (Stack) 구현

by 지수코딩 2019. 5. 21.

풀 코드는 아래 링크에서 확인하실 수 있습니다!

(피드백 환영합니다!)

https://github.com/Sjisoo/DataStructure/blob/master/Stack/Stack.c

 

Sjisoo/DataStructure

Contribute to Sjisoo/DataStructure development by creating an account on GitHub.

github.com

 

 

구조체 생성!

 

element: 현 노드에 담고 있는 값

*link: 이전 노드(현 노드 아래에 쌓여있는)의 주소 값

 

 

Stack에 데이터 Push(저장)

 

   push라는 함수를 사용해 새로운 데이터를 stack에 추가                              

            가장 최근에 저장된 데이터의 주소(top)를                               makeNode라는 함수로 새로운 값을 갖는 노드 생성 

           새로 업데이트 된 top의 link 포인터에 저장

 

 

Stack에서 데이터 Pop(삭제)

 

top에 데이터가 존재한다면

가장 최근에 저장된 데이터의 주소(top)의 link 포인터를 top에 할당

&& 기존 top(originTop)에 할당된 메모리 해제

 

 

Stack에서 맨 위 데이터 출력하는 함수

(C++에서 top() 역할)

 

 

Stack에 저장된 모든 데이터 top부터 끝까지 출력

반응형

댓글