코딩공부/T.I.L

2021-01-20 자료구조 Stack

지구야 사랑해 2022. 1. 20. 10:28

intro)

 

자료구조란?

 

- 여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것 -> 그럼 데이터는 뭐냐?

 

문자, 숫자, 소리 그림 , 영상 등 실생활을 구성하고 있는 모든 값!

 

근데... 데이터 그 자체만으로는 어떤 정보를 가지기 힘듦...

 

예컨대,  나이를 받으면 그게 사람의 나이인지, 개의 나이인지 모름..

 

데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있음!

 

참고로 배열도 자료구조 중 하나임!

 

 

무수한 상황의 예시

  • 번호를 다 알지 않아도, 이름을 아는 것만으로 전화를 할 수 있는 방법은 무엇이 있을까?
  • 웹 브라우저에서 뒤로 / 앞으로 가는 방법은 무엇이 있을까?
  • 게임 매칭을 잡을 때, 수많은 사람을 통제하는 방법엔 무엇이 있을까? ...등등

 

이런 상황에서 데이터를 효율적으로 다룰 수 있는 방법을 모두 모아 자료구조라고 이름 붙임.!

 

우리는 수많은 방법 중

자주 등장하는 네 가지의 자료구조 Stack, Queue, Tree, Graph에 대해 공부한다!

 

대부분의 자료구조는 특정한 상황에 놓인 문제를 해결하는 데 특화되어 있으므로

 

최대한 많은 자료구조를 알아두어 적재적소에 맞게 자료구조를 적용하자!

 

이 유닛의 핵심은 다음과 같음.

  • 각 자료구조가 가진 특징을 학습한다.
  • 각 자료구조를 사용하기 적합한 상황을 이해한다.
  • 다른 자료구조와의 차이점을 이해하기 위해 자료구조 내부를 직접 구현한다.
  • 자료구조를 구현하며, 자료구조의 동작원리를 이해한다.

 

 

Stack

 

- 데이터를 마지막에 밀어 넣고, 마지막에 밀어 넣은 데이터를 먼저 꺼내는 후입 선출(LIFO - Last In Frist Out) 방식 자료구조.

 

- 스택은 언제나 가장 마지막에 밀어 넣은 최신 데이터를 먼저 취득!

 

- 참고로 스택에 데이터를 밀어 넣는 것을 push, 데이터를 꺼내는 것을 pop 이라 함!

 

쌓는것은 밑에서 부터 위로 저장하지만 그 데이터를 사용할때는 위에서부터 차례로 빼야한다

 

Stack의 실사용 예제

 

브라우저의 뒤로 가기, 앞으로 가기 기능!

 

1. 새로운 페이지로 접속할 때, 현재 페이지를 Prev Stack에 보관.

 

2. 뒤로 가기 버튼을 눌러 이전 페이지로 돌아갈 때는, 현재 페이지를 Next Stack에 보관 후 

 

(왼쪽에는 Prev Stack, 오른쪽에는 Next Stack. Stack 두 개가 있는거)

 

Prev Stack에 가장 나중에 보관된 페이지를 현재 페이지로 가져옴.

 

3. 앞으로 가기 버튼을 눌러 앞서 방문한 페이지로 이동을 원할 때는, Next Stack의 가장 마지막으로 보관된 페이지를 가져옴

 

4. so on..........................

'코딩공부 > T.I.L' 카테고리의 다른 글

2022-01-20 자료구조/Graph  (1) 2022.01.20
2022-01-20 자료구조/Queue  (0) 2022.01.20
2022-01-19 Stringify JSON  (0) 2022.01.19
2022-01-18 재귀함수에 관한 예제  (0) 2022.01.18
2022-01-18 재귀함수  (0) 2022.01.18