[CS 스터디] 선형 자료구조

한주영·2023년 3월 16일
0

CS

목록 보기
5/19

Array

동일한 자료형의 데이터를 연속된 공간에 저장하기 위한 자료구조

장점?

연관된 데이터를 저장하기 위한 변수의 사용을 줄여주며
반복문 등을 이용하여 계산과 같은 과정을 쉽게처리할수있다

배열을 정의하는 방법?
자료형[]변수 ={데이터1,데이터2,데이터3...};

배열에 요소에 접근하기 위해서는 인덱싱을 이용해야함

for문을 통해 순회

List

순서가 있는 데이터들의 집합 , 불연속적인 메모리 공간에 데이터들이 연관
동적으로 크기가 정해지며 데이터의 삽입, 삭제가 배열에 비해 용이함.
메모리의 재사용성이 높아짐

add()- 데이터 추가
get()- 데이터 가져오기
size()- List의 길이 리턴
contains()- List에

HashTable

key,value 형태로 데이터를 저장하는 자료구조 , 빠르게 데이터를 검색할수있다
이유는 내부적으로 배열을 사용하여 데이터를 저장하기때문이다
각각의 key값에 해시함수를 적용해서 배열의 고유한 index를 생성하고
해당 index를 활용해 값을 저장하거나 검색하게됨

해시함수를 이용하여 색인을 버킷이나 슬롯의 배열로 계산

Queue

먼저 들어간 데이터가 먼저 나오는 선입선출(FIFO) 구조 이다.
나중에집어넣은 데이터가 먼저 나오는 스택과 반대되는 개념

예시로 일렬로 늘어선 사람들오 이루어진 줄=> 먼저 줄을 선 사람이 먼저 나갈수있는 상황을 연상
프린터의 출력이나 윈도시스템의 메세지 처리기, 프로세스 관리 등
데이터가 입력된 시간순대로 처리해야할 상황이 필요할때 쓰여짐

Enqueue : 큐 맨 뒤에 데이터 추가
Dequeue : 큐 맨 앞쪽의 데이터 삭제

Stack

한쪽 끝에서만 자료를 넣거나 뺄수있는 LIFO 후입선출 구조로 되어있다
가장 최근에 넣은데이터가 먼저 나오게 됨

예시
식당에 쌓여있는 접시 더미
책상에 쌓인 책
겹겹이 쌓인 상자
프링글스

pop(): 스택에서 가장 위에 있는 항목을 제거
push(item): item 하나를 스택의 가장 윗 부분에 추가
peek(): 스택의 가장 위에 있는 항목을 반환
isEmpty(): 스택이 비어 있을 때에 true를 반환

profile
백엔드개발자가 되고싶은 코린이:)

0개의 댓글