본문 바로가기

자료구조4

4. 큐(Queue) ▣ 큐(Queue) ■ 큐는 지난 포스팅에서 다루었던 스택(Stack)과 반대로 선입선출(FIFO : First-In First-Out)의 특징을 가지는 자료구조입니다. 가장 먼저 삽입(enqueue)된 데이터가 가장 먼저 삭제(dequeue)되는 구조를 가집니다. ■ 쉬운 예를 들어보자면, 식료품 상점에서 재고를 정리하는 것을 상상해보시면 됩니다. 각 상품에는 유통기한이 있고, 때문에 먼저 창고에 들어온 물건을 먼저(앞에) 진열 해야 합니다. 먼저 진열된 물건은 소비자에 의해 먼저 소비될 것입니다. 큐 또한 이와 마찬가지로 먼저 큐에 들어온 자료(data)가 먼저 삭제됩니다. ■ 스택에서 자료의 추가와 삭제가 스택의 top에서만 이루어졌던 것과 대조적으로, 큐에서는 자료의 추가와 삭제가 양방향에서 이루.. 2023. 10. 5.
3. 스택(Stack) ▣ 스택(Stack) ■ 스택이란 후입선출(LIFO : Last In, First Out) 구조를 가지는 자료 구조입니다. 가장 나중에 삽입(push) 된 데이터가 가장 먼저 삭제(pop)되는 자료구조입니다. 그리고 자료의 추가와 삭제는 항상 Stack의 Top에서만 이루어집니다. ■ 어려운 개념은 아니지만 예를 들자면, 회전초밥집에 갔을 때 쌓여있는 접시를 생각하면 좋을 것 같습니다. 제일 처음 먹은 접시가 제일 아래에 놓이게 되고, 제일 나중에 먹은 접시가 제일 위에 놓이게 됩니다. 그리고 계산할 때 접시를 하나씩 빼면서 접시의 개수를 센다고 하면, 가장 위에 놓인 접시가 가장 먼저 꺼내집니다. 스택도 마찬가지로 가장 나중에 스택에 들어온 데이터가 가장 먼저 삭제됩니다. ■ 위 그림의 용어의 명칭은 .. 2023. 9. 27.
2. 배열, 포인터 및 구조체 C언어를 조금이라도 공부했던 사람이라면 배열과 포인터는 들어봤을 겁니다. 둘 다 개념은 어렵지 않지만 2차원 이상의 배열은 조금 헷갈릴 수 있는 부분이 있습니다. ▣ 배열(Array) ■ 배열은 연속된 메모리 주소 공간 상에 element가 존재하는 자료구조입니다. 쉽게 말하면, 메모리내에 배열의 각 요소들은 서로 떨어져 있지 않고 붙어 있다는 뜻입니다. ■ C에서 1차원 배열 변수를 선언하는 방법은 아래와 같습니다. 1 int vector[5] = {1,2,3,4,5}; cs int 자리에는 type(char, float, double, long long, 구조체 등)이 들어갈 수 있습니다. 여기서 vector변수의 type은 뭘까요? 그냥 int 배열이라고 말하면 틀린 답입니다. 정확히는 "integ.. 2023. 5. 28.
1. 순환(Recursion) ▣ 자료구조의 정의와 순환 자료구조(data structure)에 웬 순환? 이라고 생각할 수 있습니다. 하지만 순환은 단순 반복(iteration)으로 해결하기 복잡하기 어렵거나 시간 복잡도가 매우 큰 문제들을 해결하는데 사용될 뿐만 아니라 추후에 포스팅할 트리 순회(Tree traverse), 이진 탐색, 정렬 알고리즘 등에 사용되므로 알아두는 것이 좋습니다. ■ 자료구조(Data Structure) - 효율적으로 자료에 접근(access)하기 위하여 자료를 조직화하고, 관리하고, 저장하는 방법론입니다. ■ 순환(Recursion) - 어떤 것을 정의할 때 자기 자신의 정의를 사용하여 정의하는 방법입니다. 컴퓨터 과학에서 어떤 문제를 정의하거나 해결하기 위하여 많이 사용됩니다. 다른 말로 재귀호출이라.. 2023. 5. 16.