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): 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간