Linear Algebra

자료구조 정리

Array (배열)

데이터를 연속적인 메모리 공간에 저장하고, 저장된 곳의 주소 를 이용, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조
같은 종류의 데이터를 효율적으로 관리할 수 있다.
데이터를 순차적으로 저장한다
array[k]
장점
인덱스 번호를 통해 데이터에 접근하기 때문에 빠른 접근이 가능하다.
단점
고정된 길이를 가지며 그에 따라 데이터를 추가하거나 삭제하기 어렵다.
읽기와 쓰기 연산 속도 : O(1)O(1)

Stack (스택)

데이터 값을 저장하는 선형 자료구조, 가장 최근에 저장된 값이 먼저 나간다 (LIFO)
한쪽 끝에서만 자료를 넣거나 뺄 수 있다
push, pop, top, isEmpty, size(len)
push(): 데이터를 스택에 넣기 pop(): 데이터를 스택에서 꺼내기
장점
구조가 단순해서, 구현이 쉽다. 데이터 읽기/쓰기 속도가 빠르다.
단점
고정된 길이를 가지며 이에 따라 저장공간의 낭비를 일으킨다.

Queue (큐)

데이터 값을 저장하는 선형 자료구조, 가장 오래 전에 저장된 값이 나간다 (FIFO)
enqueue, dequeue, isEmpty, front, len
Enqueue: 큐에 데이터를 넣는 기능 Dequeue: 큐에서 데이터를 꺼내는 기능
멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용된다.

Linked List (링크드 리스트)

Node가 Link에 의해 연결된 순차적인 자료구조로써 링크를 따라 원하는 노드의 데이터에 접근한다.
노드(Node): 데이터 저장 단위 (데이터값, 포인터) 로 구성 포인터(pointer): 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간