본문 바로가기

프로그래밍/자료구조

(3)
1 자료구조 스택 스택(stack): 데이터의 삽입과 삭제가 한쪽 방향에서만 일어나는 구조. 가장 최근에 삽입된 데이터가 가장 먼저 삭제 되기때문에 후입 선출(LIFO: Last-In First Out)구조라고도 함. 스택은 배열을 이용하거나 연결리스트를 이용하여 구현가능 다음 그림은 스택의 동작 원리를 보여주는 그림이다. 스택의 초기상태가 다음과 같이 있다. 저 스택에서 데이터 4를 push 한다면 다음 그림과 같다. 스택은 후입 선출 구조이기 때문에 스택의 가장 윗 부분에 데이터가 쌓인다고 생각하면 편하다. 저 상태에서 pop 을 한다면 다음 그림과 같은 상태가 된다. 데이터의 삭제또한 한 방향에서 일어나기 때문에 가장 최근에 들어온 데이터 4가 삭제된다. 스택의 연산의 종류는 다음과 같다. 연산 설명 pop 데이터 ..
2.2 자료구조 큐(queue) - 원형 큐 원형 큐(Circle queue): 기존의 큐는 프론트 값이 계속 증가되면서 공간을 잡아먹는 문제가 있음, 원형큐는 연결리스트를이용하여 공간의 낭비 없이 큐를 구현한 것이다. 원형큐의 동작과정은 다음 그림과 같다. 원형 큐의 연산은 다음 표와 같다. 연산 설명 enQueue 큐에 데이터 삽입 deQueue 큐에 데이터 삭제 peek front 가르키는 데이터 확인 isEmpty 큐가 비어있는지 확인 isFull 큐가 꽉 차있는지 확인 다음은 파이썬을 이용한 원형큐 구현 소스코드이다. class CircleQueue: def __init__(self, size): self.data = [None] * size self.size = size self.count = self.rear = self.front =..
2.1 자료구조 큐(queue) - 선형 큐 큐(queue): 한쪽 방향으로 데이터가 삽입되고 반대 방향으로는 데이터가 삭제되는 구조. 큐는 가장 먼저 삽입된 데이터가 가장 먼저 삭제되므로 선입 선출(FIFO(First-in First-Out) 구조라고도 함. 1. 선형 큐(Linear Queue) 선형 큐는 가장 기본적인 큐로 선입 선출 구조를 가진다. 다음 그림은 선형 큐의 동작 과정이다. 큐는 위의 그림과 같이 동작을 한다. 다음 표는 큐의 연산이다. 연산 설명 enQueue 큐의 rear에 원소 삽입 deQueue 큐의 front에 원소 삭제 peek 큐의 front에 원소 확인 isEmpty 큐가 비어있는지 확인 파이썬으로 구현한 큐의 소스코드는 다음과 같다. class Queue: def __init__(self): self.data =..