본문 바로가기

자료구조/C++2

[자료구조/C++] 스택(Stack) 스택이란? 인터넷을 돌아다니다 보면 "업보 스택 쌓는다"라는 말을 들을 수 있을 것이다. 무언가 잘못을 해서 업보를 차곡차곡 쌓는다는 뜻인데, 나중에 이를 그대로 돌려받을 때 "업보 청산" 한다고 한다. 여기서 스택의 뜻을 대충 유추할 수 있는데, 스택은 업보와 같이 동일한 구조의 데이터를 차곡차곡 쌓는 것을 말한다. 스택의 특징 스택의 대표적인 특징으로는 "가장 마지막에 삽입된 데이터가 가장 먼저 삭제"되는 후입선출(LIFO:Last-In-First-Out)의 구조를 가진다는 것이다. 이러한 특징 때문에 스택에서는 가장 나중에 들어간 데이터 만을 조작할 수 있는데, 여기서 가장 위에 위치한 데이터를 top이라고 한다. 스택에서 삽입과 삭제는 모두 top을 통해서만 가능하다. 스택의 기능 스택에는 데이터.. 2022. 1. 25.
[자료구조/C++] 연결 자료구조와 연결 리스트(Linked List) 연결 자료구조 연결 자료구조는 각 원소에 저장되어 있는 다음 원소의 주소(링크)에 의해 순서가 연결되는 구현 방식의 자료구조를 뜻한다. 연결 자료구조의 원소는 '노드(Node)'라 불리며 원소의 값을 저장하는 '데이터 필드(Data Field)'와 다음 노드의 주소를 저장하는 '링크 필드(Link Field)'로 구성된다. 연결 자료구조가 나온 이유(순차 자료구조와의 비교) 우리가 자료구조를 생각할 때, 각 원소들이 어떻게 배치될 것이라고 머릿속으로 생각하는 것을 논리적 구조라 한다. 그리고 자료구조가 선언되어 실제로 메모리에 할당되어있는 구조를 물리적 구조라 한다. 연결 자료구조와 순차 자료구조는 이러한 특징에서 차이를 가진다. 순차 자료구조 순차 자료구조의 구현 방식은 논리적 구현 방식과 물리적 구현.. 2022. 1. 24.