컴퓨터 공학/자료구조
-
자료구조 - 7 | 큐컴퓨터 공학/자료구조 2023. 1. 25. 21:15
큐 이전 포스트에서 알아본 자료구조인 스택은 가장 나중에 삽입한 원소를 가장 먼저 삭제하는 후입 선출 구조(LIFO; Last-In-First-Out)를 가졌다. 반면 이번에 알아볼 자료구조인 큐는 가장 먼저 삽입한 원소를 가장 먼저 삭제하는 선입 선출 구조(FIFO; First-In-First-Out)를 가진다. 따라서 큐 역시 스택과 비슷하게 삽입과 삭제의 위치가 제한되어 있는 리스트의 형식이다. 다만 비교적 구현이 간단했던 스택에 비해, 큐의 경우 삽입하는 부분과 삭제하는 부분의 위치가 서로 달라 구현에 약간의 복잡함이 있을 수 있다. 큐의 연산 큐도 스택처럼 삽입과 삭제 연산을 가진다. 스택에서는 push와 pop이라고 불렀지만, 큐에서는 삽입을 enQueue, 삭제를 deQueue라고 부른다. ..
-
자료구조 - 6 | 스택컴퓨터 공학/자료구조 2023. 1. 19. 16:49
스택 지금까지 선형 자료구조 중 순차 자료구조와 연결 자료구조에 대해 알아보았다. 이 두 자료구조는 단독으로 사용된다기보다는 다른 자료구조를 구현하기 위해 주로 사용된다. 실제로도 리스트를 구현하기 위해 이 두 방식을 사용해 선형 리스트와 연결 리스트를 구현할 수 있었다. 이번에는 단순히 데이터를 순서대로 나열하기만 하는 리스트가 아닌, 특정한 제약을 가지고 동작하는 스택이라는 자료구조에 대해 알아볼 것이다. 스택 역시 순차 자료구조와 연결 자료구조를 이용해 각각 다른 형태로 구현할 수 있으므로, 이전에 설명한 순차 자료구조와, 연결 자료구조의 개념에 대해 다시 한번 확인하기를 바란다. 스택의 개념 스택은 데이터를 접시를 쌓듯이 쌓아 올리는 형태로 저장하는 자료구조이다. 새 접시를 쌓아 올릴 때는 항상 ..
-
자료구조 - 5 | 연결 자료구조컴퓨터 공학/자료구조 2023. 1. 16. 14:42
연결 자료구조 자료들이 서로 1:1의 관계를 가지는 선형 자료구조에는 리스트, 스택, 큐, 데크 등의 여러 형태가 있다. 그중에서도 새로운 데이터를 삽입하거나 기존 데이터를 삭제하는데 별다른 제약이 없는 가장 기초적인 형태의 자료구조가 바로 리스트이다. 이러한 리스트는 순차 자료구조와 연결 자료구조로 분류할 수 있는데, 각각 순차 리스트와 연결 리스트로 부르기도 한다. 순차리스트는 보통 배열, 연결 리스트는 그냥 리스트라고 취급한다. 이전 포스트에서는 순차 자료구조에 대해 간단하게 알아보았다. 이번 포스트에서는 리스트를 만들 수 있는 또 다른 방식인 연결 자료구조에 대해 알아보고자 한다. 순차 자료구조의 문제점 기본적으로 연결 자료구조는 순차 자료구조의 문제점들을 개선한 구조를 가지고 있다. 따라서 순차..
-
자료구조 - 4 | 순차 자료구조컴퓨터 공학/자료구조 2023. 1. 13. 22:29
순차 자료구조 순차 자료구조는 선형 자료구조의 일종으로, 저장할 자료들을 메모리에 연속적으로 저장하는 방식인 자료구조이다. 단순히 메모리에 저장할 자료들을 순서대로 저장하기만 하면 되기 때문에 구현이 매우 간단하다는 특징이 있다. C언어에서 배열이라고 불리는 자료구조가 바로 이 순차 자료구조이다. 선형 자료구조 자료들이 서로 1:1의 관계를 가지는 자료구조로, 데이터가 마치 한 줄로 연결된 듯한 형태를 가지고 있다. 순차 자료구조, 연결 자료구조, 스택, 큐, 데크 등이 선형 자료구조에 해당한다. 반면 같은 선형 자료구조이지만 순차 자료구조와는 다른 방식으로 구현할 수 있는 연결 자료구조라는 방식도 있다. 이는 순차 자료구조를 사용함에 있어서 생길 수 있는 문제점들을 개선하기 위해 고안된 자료구조로, 순..
-
자료구조 - 3 | 알고리즘컴퓨터 공학/자료구조 2022. 9. 17. 16:44
알고리즘의 이해 알고리즘 문제 해결 방법을 추상화하여 단계적 절차를 논리적으로 기술해 놓은 명세서 알고리즘이란 컴퓨터가 특정 문제를 해결하기 위한 절차나 방법을 논리적으로 설명하는 과정 또는 명세서를 말한다. 컴퓨터 프로그램은 굉장히 많은 종류가 있는데, 각각은 모두 만들어진 목적이 다르다. 즉, 해당 프로그램을 이용해서 실현할 수 있는 결과가 다 다르다는 것인데, 이를 위해 각 프로그램에는 각자에 맞는 알고리즘이 사용된다. 일상생활에서 간단한 예시를 들어보자면, 요리 레시피가 알고리즘의 한 예라고 볼 수 있다. 요리 레시피에는 요리 재료와, 해당 재료를 이용해 어떠한 순서로 요리를 진행하는지 알려주는 부분이 있다. 여기서 재료에 해당하는 부분이 데이터(자료)에 해당할 것이고, 해당 자료를 어떠한 순서와..
-
자료구조 - 2 | 자료의 표현컴퓨터 공학/자료구조 2022. 9. 11. 01:32
디지털 시스템에서의 자료 표현 컴퓨터에서는 숫자, 문자, 그림, 소리 등의 모든 형식의 자료를 내부적으로 2진수 코드로 변환하여 저장하고 처리한다. 여기서 말하는 2진수 코드란 0과 1의 조합으로 이루어진 코드를 의미하며, 이때 0 또는 1을 나타내는 기본적인 단위를 비트라고 한다. 즉, 디지털 시스템에서는 어떠한 형태의 자료든지 0 또는 1로 이루어진 비트단위로 정보를 처리하게 된다. 따라서 만약 n개의 비트가 존재한다면, 이를 이용해 2^n개의 상태를 표현할 수 있다. 컴퓨터 내부에서 표현할 수 있는 자료 컴퓨터 내부에서 이러한 2진수 방식을 이용해 표현할 수 있는 자료의 형태는 다음과 같다. 수치 자료 문자 자료 논리 자료 포인터 자료 문자열 자료 이에 관한 자세한 내용은 아래에서 순차적으로 확인할..
-
자료구조 - 1 | 자료의 분류컴퓨터 공학/자료구조 2022. 9. 10. 21:42
자료구조의 개념 자료구조란, 자료(Data)를 효율적으로 표현하고 저장하고 처리할 수 있도록 정리하는 것으로, 일종의 정리정돈을 하는 방식에 대한 개념이다. 컴퓨터 프로그래밍에서 문제를 효율적으로 처리하기 위해서는, 해당 문제를 정의하고 분석하여 그에 대한 최적의 프로그램을 작성해야 할 필요가 있다. 이때 문제에 대한 처리 방식을 결정하는 것이 알고리즘에 관한 것이라면, 문제에 대한 처리 대상을 결정하는 것은 자료 정의에 관한 것이다. 따라서 처리할 자료의 구조에 대한 개념과 활용 능력이 반드시 필요하다고 볼 수 있다. 자료의 형태에 따른 분류 자료는 그 형태에 따라 분류할 수 있는데, 크게 아래의 4가지 구조로 나눌 수 있다. 단순 구조 단순 구조는 컴퓨터 프로그래밍에서 가장 기본적으로 사용하는 기본 ..