반응형

컴퓨터 과학 Computer Science/자료 구조 Data Structure 3

자료 구조 - 단일 연결 리스트 Singly Linked List, 파이썬으로 구현한 단일 연결 리스트 예제

연결 리스트Linked List란? 각 노드(node)가 데이터와 포인터를 가지고 한 줄로 연결된 자료 구조. 참고: 위키백과 연결 리스트 그렇다면 노드란? 위 그림에서 네모 두 칸이 노드다. 12가 데이터, 다른 노드를 가리키고 있는 화살표가 바로 포인터다. 파이썬 노드 코드 예 노드를 한 줄로 연결하게 되면 연결 리스트가 된다. 연결 리스트 중 포인터가 하나인 경우가 단일 연결 리스트이다. 단일 연결 리스트 파이썬 구현 예 아래는 파이썬으로 구현한 단일 연결 리스트 예이다. 앞에서 살펴본 스택이나 큐보다 훨씬 복잡하다. 노드란 객체를 만들어서 연결하기 때문에 더 복잡해 보인다. 코드를 이해하기 위해서는 천천히 살펴볼 필요가 있다. 그렇다면 왜 연결 리스트를 사용할까? 많은 프로그래밍 언어에서 배열이란..

자료 구조 - 큐Queue, 파이썬으로 구현한 큐 예제

큐Queue란? 먼저 넣은 데이터가 먼저 나오는 자료 구조를 큐라고 한다. 먼저 들어간 것이 먼저 나온다는 First In First Out, FIFO라고 말하면 큐다. 영어 사전에서 Queue를 찾으면 줄을 서다, 차례를 기다리는 줄을 뜻한다는 것을 확인할 수 있다. 식당에서 줄을 섰다면? 당연히 먼저 줄에 서 있던 사람이 먼저 식당으로 들어가야 한다. 참고: 위키백과 큐 파이썬 큐 예제 아래는 파이썬으로 구현한 큐 예이다. 큐를 구현하는 것 자체는 어렵지 않다. 큐의 의미 그대로 값을 순서대로 넣고 enqueue(), 먼저 넣은 값을 dequeue() 호출 시 꺼내오면 된다.

자료 구조 - 스택Stack, 파이썬으로 구현한 스택 예제

스택Stack이란? 스택은 한쪽 긑에만 자료를 넣거나 뺄 수 있는 선형 구조. 나중에 들어간 것이 먼저 나온다. Last In First Out, LIFO라고 하면 스택이다. 영어 단어 stack 뜻 자체가 쌓다, 더미이다. 간단히 접시가 쌓여 있는 형태를 떠올리면 된다. 접시를 쌓아 놓았을 때 위에서부터 쓰게 된다. 참조: 위키백과 스택 파이썬 스택 예제 아래는 파이썬으로 구현한 스택 예이다.

반응형