• 스택 기본 구조



-스택은 입출력이 한방향으로 이루어 진다(자료를 입력하는 쪽과 출력하는 쪽이 같다).

-늦게 들어온 자료가 더 빨리 나가는 구조(LIFO : Last in First out).

-일반적으로 스텍에서 입력을 Push, 출력을 Pop이라고 한다.






현실에서 LIFO의 예



  • 스택의 삽입(Push)

-스택의 삽입은 가장 앞쪽에서 이루어 진다.


-위 그림에서 Head노드는 데이터는 갖지 않고, 첫번째 노드의 위치를 저장하는 노드다

(Head노드에도 데이터를 저장한다면, 삽입 노드가 Head노드가 되게하면 된다).



Head노드의 다음노드(Next) = 삽입노드

삽입 노드의 다음노드(Next) = 노드#01(첫번째 데이터 노드)




삽입 완료





  • 스택의 출력(Pop)



출력(Pop) 요청시 첫번째 노드를 출력




Head노드의 다음노드(Next)를 2번째 노드(출력 노드의 Next)로 지정

( = 2번째 노드를 첫번째 노드로 만듬)



데이터 전달 & 노드를 삭제를 완료하면

출력 종료




  • 전체 코드




  • 템플릿으로 구현한 스택


'자료구조' 카테고리의 다른 글

트리 순회 알고리즘#01 전위 순회(Preorder Traversal)  (0) 2017.01.23
이진 트리(Binary Tree)  (0) 2017.01.23
큐(Queue)  (0) 2017.01.22
이중 링크드 리스트(Doubly Linked List)  (1) 2017.01.20
링크드 리스트(Linked List)  (0) 2017.01.20

+ Recent posts