본문 바로가기

CS/자료구조24

연결 리스트, 리스트의 개념 및 구현, 포인터 변수, 여러 연산들 1. 리스트의 개념 리스트의 의미 리스트는 일정한 순서로 나열된 데이터의 집합을 말한다. 이 순서는 물리적인 순서가 아닌 논리적인 순서를 의미한다. 이는 리스트가 데이터를 물리적인 메모리 위치에 연속적으로 저장하지 않아도 되며, 논리적인 순서만 유지하면 되는 추상적인 데이터 구조임을 의미한다. 배열의 정의 배열과 리스트는 상반되는 특성을 지닌다. 배열은 데이터가 메모리에 연속적으로 저장되는 구조로, 물리적인 순서가 중요하다. 배열에서는 각 데이터의 위치가 고정되어 있으며, 데이터에 접근하는 시간이 일정하다는 장점이 있다. 리스트의 구현 방법 리스트는 두 가지 주요 방법으로 구현될 수 있다. 첫 번째는 배열을 사용하는 방법이다. 이 방법은 메모리를 연속적으로 사용하지만, 데이터의 삽입과 삭제가 비효율적이 .. 2023. 11. 19.
큐 - 큐의 개념, 큐의 추상 자료형, 큐의 응용, 배열 큐, 원형 큐 1. 큐의 개념 큐의 의미 큐(Queue)는 일상생활에서 흔히 볼 수 있는 줄 서기와 유사하다. 사람들이 버스 정류장에 줄을 서서 버스를 기다리는 것처럼, 큐는 데이터들이 들어오고 나가는 순서가 중요한 자료 구조다. 큐의 정의 큐는 선입선출(First In First Out, FIFO)의 원칙을 따르는 자료 구조다. 큐에 가장 먼저 들어온 데이터가 가장 먼저 나간다. 추상적 특성: 큐는 추상적인 개념으로, 데이터의 처리 순서를 제어하는 데 초점을 맞춘다. 큐에 데이터를 추가하는 것을 'Enqueue', 데이터를 꺼내는 것을 'Dequeue'라고 함. 구현 방식: 큐는 배열이나 연결 리스트 등으로 구현될 수 있다. 각각의 구현 방식에 따라 성능이나 사용 방법에 차이가 있을 수 있음. 2. 큐의 추상 자료형.. 2023. 11. 18.
스택 - 스택의 개념, 스택의 추상 자료형, 연산 및 응용, 사칙연산식의 전위 중위 후위 표현 1. 스택의 개념 스택의 정의 스택은 매우 중요한 자료 구조 중 하나로, 마치 책이나 돌멩이를 순서대로 쌓아 올린 것과 같은 구조를 가진다. 스택은 '후입선출(LIFO, Last In First Out)'의 특성을 가지며, 가장 나중에 쌓은 항목이 가장 먼저 나오는 구조를 갖는다. 이러한 특성 때문에, 스택은 여러 컴퓨팅 과정에서 유용하게 사용된다. 스택의 핵심 개념은 다음과 같다: 후입선출(LIFO)의 원리: 스택에 추가된 마지막 항목이 가장 먼저 제거된다. 즉, 가장 최근에 쌓은 것이 가장 먼저 나오는 구조다. Push와 Pop 연산: 스택에 데이터를 추가하는 행위를 'Push', 데이터를 제거하는 행위를 'Pop'이라 한다. 이 두 연산은 스택을 관리하는 데 핵심적인 역할을 한다. Top 포인터: .. 2023. 11. 18.
배열 - 정의, 추상 자료형, 연산, 희소 행렬 1. 배열의 정의 배열의 정의 배열은 여러 값을 연속적으로 저장하는 자료 구조로서, 프로그래밍에서 기본적인 역할을 한다. 배열은 특정한 순서로 정렬된 원소들의 집합이며, 이 원소들은 모두 같은 자료형을 가진다. 배열의 각 원소는 인덱스(index)라고 불리는 숫자로 식별된다. 이 인덱스는 배열의 시작점으로부터 특정 거리만큼 떨어진 위치에 있는 원소를 참조하는 데 사용된다. 배열의 의미 배열은 데이터를 메모리상에 효율적으로 저장하고 접근할 수 있는 방법을 제공한다. 각 원소들은 연속적인 메모리 공간에 저장되어 있으므로, 배열을 통해 데이터를 빠르고 쉽게 처리할 수 있다. 배열은 순서가 중요한 데이터를 다룰 때 특히 유용하며, 인덱스를 사용해 각 원소에 빠르게 접근할 수 있다는 점에서 큰 이점을 가진다. 배.. 2023. 11. 18.
자료구조, 추상화의 개념, 자료구조와 알고리즘, 알고리즘의 개념과 조건 및 성능 1. 자료와 정보 자료의 가공 우리가 일상적으로 접하는 데이터는 원시적인 형태로 존재한다. 이를 통해 유용한 정보를 얻기 위해서는 가공 과정이 필요하다. 데이터 생성 및 수집: 데이터는 센서, SNS, UCC 등을 통해 대량으로 생성됨. 예시: 센서가 0.1초마다 온도를 측정하여 방대한 양의 데이터를 생성. 전처리 과정: 노이즈 제거, 필요 없는 값 삭제, 필요 데이터 보완 등의 과정이 필요. 예시: 머신러닝이나 딥러닝을 위한 데이터 전처리 과정. 데이터의 상업적 가치: 데이터 처리와 분석을 통해 상업적 이득을 얻을 수 있음. 예시: 빅데이터 분석을 통해 맞춤형 광고나 제품 개발. 자료의 정의 자료(데이터): 현실 세계에서 관찰이나 측정을 통해 수집된 값이나 사실. 예시: 온도, 위치, 사용자 행동 데이.. 2023. 11. 18.