순환 큐(Circular Queue)

순환 큐(Circular Queue)

선입선출! 큐(Queue)란 자료구조는 앞서 배웠던 스택(Stack) 자료구조와는 달리 선입선출(First In, First Out: FIFO)의 구조를 지니고 있습니다. 한마디로 먼저 들어온 데이터는 먼저 나간다는 소리입니다. 예를 들면, 점심시간에 학생들이 점심을 먹으러 일렬로 줄을 서있다고 가정합시다. 줄을 선 순서대로 차례차례 급식을 받고 빠져나가죠? 이러한 구조를 지닌 자료구조가 바로 큐(Queue)라고 말할 수 있습니다. 오늘은 순환 큐(Circular Queue)와 링크드 큐(Linked … 더 읽기

스택(Stack)

스택(Stack)

선입 후출! 후입 선출! 오늘 알아보게 될 스택(Stack)이란 자료구조는 선입 후출(First In, Last Out: FILO), 후입 선출(Last In, First Out: LIFO)의 구조를 가지고 있습니다. 예를 들자면, 어느 개발자의 책상에 빼곡히 쌓여있는 책을 정리하기 위해 가장 위에 있는 책부터 꺼내들어 차례대로 정리합니다. 여기서, 먼저 쌓인 책들보다 나중에 쌓인 책들이 먼저 밖으로 나간다고 해서 후입선출의 구조라 말하고, … 더 읽기

환형 링크드 리스트(Circular Linked List)

환형 링크드 리스트(Circular Linked List)

환형 링크드 리스트(Circular Linked List) 머리가 꼬리를 문다! 여태까지 단순 연결 리스트, 이중 연결 리스트에 대해 알아봤습니다. 이번에는 원형 연결 리스트(Circular Linked List)에 대해 알아보도록 하겠습니다. 원형 연결 리스트의 특징은 머리와 꼬리가 연결되어 순환(Circular) 구조를 지닙니다. 즉, 꼬리(Tail, 테일) 노드의 다음 노드는 머리(Head, 헤드) 노드를 가리킵니다. 여기서는 환형 더블 링크드 리스트가 아닌 환형 싱글 링크드 … 더 읽기

더블 링크드 리스트(Doubly Linked List)

더블 링크드 리스트(Doubly Linked List)

더블 링크드 리스트(Doubly Linked List) 양방향으로 탐색하자! 이번에는 단순 연결 리스트(Singly Linked List: SLL)가 아닌, 이중 연결 리스트(Doubly Linked List: DLL)입니다. 단순 연결 리스트는 헤드부터 시작해서 테일까지 탐색해야 하는 단방향 탐색이었지만, 이중 연결 리스트는 헤드에서 테일, 테일에서 헤드 방향으로 탐색이 가능한 양방향 탐색입니다. 단순 연결 리스트의 노드는 다음 노드를 가리키는 포인터만 있는 반면에, 이중 연결 … 더 읽기

링크드 리스트(Linked List)

링크드 리스트(Linked List)

데이터의 목록을 다루는 자료구조 리스트(List) 리스트(List)는 데이터의 목록을 다루는 구조가 단순한 자료구조입니다. 구조가 단순하면서도, 가장 널리 쓰이며 리스트는 다른 자료구조들을 이해하는데 필요한 기초를 제공합니다. 이 리스트란 자료구조는 데이터를 순차적으로 저장하며, 이 때문에 선형 구조를 띕니다. 여기서 선형 구조란 데이터가 순차적으로 저장되기 때문에 끊어지지 않으며, 한 줄로 계속되기 때문에 마치 선과 같은 형태를 띤다 하여 선형 … 더 읽기