본문 바로가기

2

스택(Stack) 두 개로 큐(Queue) 구현하기 구현방법 큐를 입력할 때에는 하나의 스택의 push()를 통하여 데이터를 넣고, 큐를 추출할 때에는 다른 스택의 pop()를 통하여 선입선출을 만족시키는 방법 Enqueue - 첫번째 스택 stack1에 push를 하여 데이터 저장 Dequeue - 두번째 스택 stack2 이용 a. stack2가 비어있다면 stack1이 비어질 때까지 pop()하여 모든 데이터를 옮겨넣음. 이 결과로 stack1에서 가장 먼저 있었던 데이터는 stack2의 top에 위치하게 됨 b. stack2.pop()을 하면 가장 먼저 있었던 데이터가 가장 먼저 추출됨(FIFO) 코드 작성 class Queue(object): def __init__(self): self.instack=[] self.outstack=[] def e.. 2023. 8. 8.
Queue & Stack Queue란? 특징 - Queue의 사전적 의미는 줄, 혹은 줄을 서서 기다리는 것을 의미한다. - 선입선출(FIFO - First In First Out) 의 자료구조이다. → 먼저 넣은 데이터가 먼저 나온다. - 그러므로, 순서대로 처리해야할 때 사용한다. - 데이터를 추가하는 Enqueue / 데이터를 추출하는 Dequeue 연산이 있다. Enqueue - 맨 뒤에 데이터를 추가하면 되기 때문에 O(1)이다. (rear포인터 이용) Dequeue - 맨 앞의 데이터를 삭제하면 되기 때문에 O(1)이다. (front포인터 이용) 큐의 가장 첫번째 데이터를 front / 가장 마지막 데이터를 rear로 가리킨다. 접근방법은 front/rear로만 가능하다. - 활용 예시로는 하나의 자원을 공유하는 프린.. 2023. 6. 24.