본문 바로가기

3. 큐(Queue) 큐(Queue) : 선입선출(FIFO) - 큐의 경우는 스택의 자료 구조와 달리 선입선출 즉 먼저 들어온 데이터가 가장 먼저 나간다.또한 큐의 종류는 ㆍ 순환큐(Circular Queue) ㆍ 링크드큐(Linked Queue)가 있다. - 단순한 큐의 구조를 먼저 알아보자.- List에서는 가장 앞에 있는 노드를 헤더(Head), 가장 뒤에 있는 노드를 테일(Tail)이라고 했습니다. - 하지만 큐에서는 가장 앞에 있는 요소를 전단(Front), 가장 뒤에 있는 요소를 후단(Rear)라고 부릅니다.- 큐의 경우는 선입선출의 구조이기 때문에 제거(Dequeue)는 전단에서 이루어지며, 삽입(Enqueue)은 후단에서 이루어진다. 1. 순환 큐(Circular Queue) - 순환 큐에 대해 말하기 전에, .. 더보기
2. 스택(Stack) 스택 : 선입후출, 후입 선출 (FILO) - 쉽게 설명한다면 가장 먼저 들어온 데이터가 가장 마지막에 나가는 형태를 말한다. - 형태대로 보면 데이터의 삽입과 제거가 한쪽에서만 이루어 진다. - 하지만 스택의 문제는 배열 처럼 용량을 정해 두고 데이터를 쌓아야 한다. 스택의 용량을 초과 할경우 데이터를 빼내야 다른 데이터를 넣을 수가 있다. 그것에 문제점을 링크드 리스트 스택을 이용해서 해결할 수 있다. 1. 링크드 리스트 스택 - 대략 형태는 링크드리스트의 형태에 데이터를 넣는 부분(Push)하는 부분을 한곳으로 만들어서 제어를 하도록 하며 스택의 용량을 초과하지 않도록 각 데이터를 Node의 형태로 연결해 놓는다. - 연결 리스트 스택의 경우 기존 스택에 비해 용량 제한이 없어졌다는 것이 핵심이다... 더보기
1. 리스트(List) 선형구조를 갖고 있는 리스트(List)- 데이터를 순차적으로 저장하기 때문에 선형 구조- A-B-C-.......-Z 의 형식으로 순차적으로 저장되어 끊어지지 않고 한 줄로 계속되기 때문에 선같은 형태를 띈다 해서 선형구조라고 함 1. 링크드 리스트(Linked List) : 노드의 연결로 이루어져 있다.노드를 연결해서 만들어지는 리스트이며 이 노드는 데이터와 포인터를 가짐 - 연결 리스트의 형태는 ㆍ 단순 연결 리스트 ㆍ 원형 연결 리스트 ㆍ 이중 연결 리스트로 세가지가 존재 한다. 단순 연결 리스트는 노드를 얻기 위해 드는 비용이 크고 속도도 느리다는 단점이 있다.이유는 헤드부터 시작해서 테일까지 차례차례 노드를 탐색하기 때문이다.하지만 장점으로는 새로운 노드를 추가하려면 삭제, 삽입이 간편하다. 2.. 더보기