본문 바로가기

728x90

자료구조

(5)
[자료구조] 여러가지 배열 종류 1. 기본 배열 (Array)정의: 동일한 타입의 요소가 고정된 크기로 연속된 메모리 공간에 저장된 자료구조입니다.특징:고정 크기: 배열의 크기는 선언 시 고정되며 변경할 수 없습니다.빠른 접근: 인덱스 값으로 각 요소에 O(1) 시간 복잡도로 접근 가능.메모리 효율성: 연속적인 메모리 공간을 사용하여 메모리 접근이 빠릅니다.용도: 크기가 변하지 않는 데이터 집합을 저장할 때 유용합니다.int[] numbers = {1, 2, 3, 4, 5};System.out.println("첫 번째 요소: " + numbers[0]); // 1System.out.println("세 번째 요소: " + numbers[2]); // 3  2. 동적 배열 (Dynamic Array)정의: 크기를 동적으로 조정할 수 있는 ..
[자료구조] 큐(Queue) 큐(Queue)란?큐(Queue)는 한쪽에서 데이터를 삽입하고 반대쪽에서 데이터를 삭제하는 선입선출(FIFO, First In First Out) 자료구조입니다.  큐의 현실 예시: 줄 서기식당에서 줄을 서면, 가장 먼저 도착한 사람이 가장 먼저 입장합니다. 이는 큐의 선입선출 특징과 같아 큐를 이해하는 좋은 예시가 됩니다. 큐의 종류원형 큐 (Circular Queue)삽입과 삭제 위치를 원형으로 연결하여 사용합니다.배열의 끝에 도달해도 공간을 재활용할 수 있는 특징이 있습니다.배열 기반 큐에서 공간 낭비를 줄이기 위해 사용됩니다.덱 (Deque: Double-Ended Queue)양쪽에서 삽입과 삭제가 가능한 큐입니다.Java에서는 기존의 Queue보다 Deque를 더 권장합니다.이유: Deque는 ..
[자료구조] 스택(Stack) Java 예제 포함 스택(Stack)은 컴퓨터 과학에서 매우 중요한 자료 구조 중 하나로, 데이터를 저장하고 접근하는 방법에 대한 규칙을 따릅니다. 스택은 LIFO(Last In, First Out)라는 원칙을 기반으로 동작합니다. 이는 마지막에 들어간 데이터가 먼저 나오는 구조로, 물리적인 구조로는 책을 쌓는 것과 비슷합니다.   스택의 주요 특징LIFO (Last In, First Out):스택에 저장된 데이터는 나중에 추가된 데이터가 먼저 처리됩니다.즉, 스택의 마지막에 추가된 요소가 가장 먼저 제거됩니다.기본 연산:Push: 스택의 맨 위에 새로운 데이터를 추가하는 연산입니다.Pop: 스택의 맨 위에 있는 데이터를 제거하고 반환하는 연산입니다.Peek (또는 Top): 스택의 맨 위에 있는 데이터를 제거하지 않고 반..
[자료구조] Array 배열 배열이란?배열은 동일한 타입의 여러 값을 하나의 변수에 묶어서 저장하는 자료구조입니다. 각 값을 별도로 저장하는 대신, 하나의 변수로 여러 값을 관리할 수 있습니다. 배열의 특징크기 조정 불가배열은 선언된 순간부터 크기를 변경할 수 없습니다. 크기를 변경하고 싶다면 새로운 배열을 생성한 후, 기존 배열의 요소를 새 배열에 복사해야 합니다.요소에 빠른 접근배열은 인덱스를 통해 각 요소에 빠르게 접근할 수 있습니다. 요소 접근의 시간 복잡도는 O(1)로 매우 빠릅니다. 배열은 반복문을 사용하여 요소에 쉽게 접근할 수 있는 자료구조입니다.인덱스는 0부터 시작배열의 인덱스는 0부터 시작합니다. 즉, 배열의 첫 번째 요소는 인덱스 0에 위치하며, 마지막 요소는 배열 크기에서 1을 뺀 인덱스에 위치합니다.배열의 마..
[자료구조] Linked List Linked List는 데이터를 저장하는 선형 자료구조 중 하나로, 각 요소가 다음 요소에 대한 참조(포인터)를 가지고 있어 동적으로 크기를 조정할 수 있습니다.Linked List의 핵심 요소노드(Node): Linked List의 기본 단위로, 각 노드는 두 가지 정보를 가집니다.데이터(Data): 노드가 저장하는 실제 값.포인터(Next/Pointer): 다음 노드를 가리키는 참조.헤드(Head): Linked List의 첫 번째 노드를 가리키는 포인터.Linked List의 종류단일 연결 리스트(Singly Linked List):각 노드는 하나의 포인터(Next)만 가짐.마지막 노드의 포인터 값은 null.이중 연결 리스트(Doubly Linked List):각 노드는 두 개의 포인터(Front..

728x90