Fascination
article thumbnail
[DS] Linked List (연결 리스트) 와 Linked List Operator ( 연결 리스트 연산자)
Study/Data Structure 2021. 9. 7. 22:28

1. 연결 리스트 # 연결 리스트와 배열의 비교 - 리스트: 동일한 자료형으로 된 원소(item)들의 모임으로 선형 리스트(linear list)와 연결 리스트(linked list)로 나뉨 > 선형 리스트: 배열로 구현되는 순서 리스트(ordered list)로 원소들이 메모리에 연속적으로 저장되며 인덱스로 접근 * 배열 원소의 개수는 선언 시점 이후에는 변경할 수 없음 → 크기를 잘못 예측하지 않도록 주의해야 함 * 배열은 시스템에 의해 메모리 상에서 관리됨 > 연결 리스트: 원소들이 프로그램 실행 중에 동적으로 생성되거나 삭제되므로 리스트의 크기를 미리 예측할 필요 X 원소들은 링크(link)를 통해 서로 연결되어 있음 논리적으로는 선형적이지만 물리적으로는 분산되어 있음 * 동적 메모리 관리(dyn..

article thumbnail
[DS] Queue(큐) & Circular Queue(순환 큐)
Study/Data Structure 2021. 8. 31. 19:05

# 큐 - 큐: 처리를 기다리고 있는 작업(원소)들의 리스트 - 선입 선출(FIFO, First-In, First-Out) 방식 / FCFS (First-Come, First-Served) - 우선순위를 부여하지 않음 - 새로운 원소는 큐의 맨 뒤(rear)에 삽입되고 큐의 맨 앞(front) 원소가 먼저 삭제됨 - insert된 순서대로 처리됨 - 스택과 달리 큐의 맨 앞 원소와 맨 뒤 원소를 가리키기 위한 두 개의 front와 rear 포인터가 필요 Q = [a0, a1, ..., an-1] # 큐의 구현 - front: delete할 때 사용 - rear: stack에서의 top과 같은 역할을하며 add할 때 사용 - front와 rear 포인터의 초기 값 = -1 ← 일반적으로 이렇게 설정 - 새..