Stack, Queue & Array, LinkedList

JeongO·2023년 2월 28일
0

🟠 자료구조

메모리공간이나 접근, 연산시간 등의 관점에서 효율적으로 자료를 저장하고 관리할 수 있게 만든 모델

Stack, Queue, Array, LinkedList 는 Linear 구조에 속하는 자료구조이다.

🟠 Stack

LIFO구조
push,pop,peek 메서드를 통해 기능을 구현
이전에 한 작업을 기억하거나 되돌려야 하는 경우에 많이 사용됨
(괄호 갯수 새기)

🟠 Queue

FIFO구조
enqueue, dequeue 메서드를 통해 기능 구현

🟠 Array

자료가 연속적으로 저장되는 구조(순차적)
인덱스를 사용할 수 있다
검색, 접근, 정렬 등에 강점을 가진다 (Array에 존재하는 모든 요소에 접근하는 속도는 동일하다)
데이터의 추가, 삭제의 경우 배열의 복사와 이동이 일어나야해서 성능이 떨어진다

🟠 LinkedList

자료가 비연속적으로 저장된다(순서 없음)
하나의 노드는 자기자신의 데이터와 다음 연결된 노드의 주소만 가진다
인덱스가 없으므로 검색의 경우 성능이 떨어진다(처음부터 하나하나 찾아야 함)
데이터 추가, 삭제의 경우 앞,뒤 노드의 주소만 변경해주면 되므로 빠르다

Class Node{
	Node next;
	Object obj;
}

LinkedList의 단점을 보완 👉 Doubly LinkedList, Doubly Circular LinkedList
Java는 Doubl LinkedList를 구현


*참고
자료구조접근시간중간 추가,삭제순차적 추가,삭제
Array훨씬빠름느림빠름
LinkedList느림훨씬 빠름상대적으로느림

순차적 추가,삭제는 Array가 더 빠르므로 Stack을 구현하려면 Array이용하는 것이 효율적
Queue를 구현하려면 LinkedList를 이용하는 것이 효율적




참고 사이트
https://afteracademy.com/blog/introduction-to-data-structure/
https://www.scaler.com/topics/data-structures/what-is-data-structure/

profile
IT'S YOUR VICTORY

0개의 댓글

관련 채용 정보