Stack 2

[Python] 자료 구조2 - Single & Double Linked List(연결 리스트)의 개념과 차이점

HW)파이썬으로 데이터 처리를 위해 관련 내용을 접하게 될 때마다 '자료 구조'를 이해하는 것이 정말 중요함을 다시 인식하게 된다. 이전에 스택(Stack)과 큐(Queue)에 대해서 알아봤듯이, 이번에는 (단일)연결리스트, (Single) Linked List, 와 양방향 연결리스트, Double Linked List, 에 대해서 이해해보자. 우선, 기본 구조인 '노드(node)'를 먼저 알아보자.> 노드는 데이터를 저장하는 가장 기본적인 구조 단위로, 각 노드는 자신의 주소와 인접한 노드의 주소 정보를 저장하고 있다. - 각 노드(Node)에서 저장된 이전(prev) 노드의 주소와 다음(next) 노드의 주소를 가리켜 Link (or Pointer) 라고 하며, 이 메모리 주소들이 노드들 사이에 어떤..

[Python] 자료 구조1 - 스택(Stack)과 큐(Queue)의 개념과 차이점

HW)파이썬으로 데이터를 처리할 때, 데이터 처리 방식에 대한 논리적인 구조를 이해하는 것이 중요하다. 특히 자료구조 이론으로 스택(Stack)과 큐(Queue)에 대해서 이해해야 한다. 아래에 그림과 표로써, 스택과 큐의 개념과, 차이점을 정리하고 파이썬으로 구동 방식의 차이 또한 구현해보자. 우선, 빈 메모리에 데이터 3가지 요소(ex, 대한, 민국, 만세)가 차례로 쌓이고 비워지는 상황을 예로 비교해보자. > Stack은 LIFO 방식으로 구동하며 목록에 들어온 마지막 요소(Last-in)가 가장 먼저 제거된다(First-Out).push : 요소가 순서대로 쌓이도록 함. : [(empty)] → [대한(peek)] → [대한, 민국(peek)] → [대한, 민국, 만세(peek)] pop : L..