[면접준비] 자료구조 (24/04/15)
2024. 4. 15. 09:41ㆍ공부/면접 준비
Array와 Linked List의 비교
- Array
- 정적 자료구조. 특정 크기의 연속적인 메모리 공간에 데이터를 저장하는 자료구조.
- 생성시 크기가 정해지며, 동적으로 변경하기 어렵다.
- 연결된 메모리 주소를 할당 받기 때문에 index를 가지게 되고, 임의 접근이 가능하다는 장점을 가진다.
- index를 가지기 때문에 접근과 탐색이 용이하다.
- 크기를 미리 정했기 때문에 수정이 불가능하며, 정해진 크기 이상의 데이터를 저장할 수 없다.
- Linked List
- 동적 자료구조. 크기를 정할 필요도 없으며, 메모리 주소또한 연속되지 않는다.
- 데이터와 다음 데이터를 가리키는 주소가 담긴 노드(Node)를 가지고 노드끼리 연결된 형태이다.
- 크기를 정해놓지 않았기 때문에 크기 제한이 없으며, 데이터 추가 삭제가 자유롭다.
- 연속적인 메모리 주소를 할당받지는 않았기 때문에, 임의 접근이 불가능하다. 즉, 데이터 탐색시 순차적 접근이 필요하다는 뜻이다.
- 간단 비교(배열 vs 연결리스트)
- 정적 vs 동적
- 미리 정해진 크기 vs 크기정할 필요 없는
- 연속된 메모리 주소 vs 연속되지 않음
- 접근, 탐색 용이 vs 추가, 삭제 용이
- 데이터 조회 : 시간 복잡도 O(1) vs O(N)
- 데이터 첨삭 : 시간 복잡도 O(N) vs O(1)
- Index vs Node
- 정보 저장 vs 연결된 정보
Stack과 Queue의 비교설명
- Stack
- 같은 구조와 크기의 자료를 정해진 방향으로 쌓아 올린 형태의 자료구조(후입선출 LIFO)
- Top 원소로만 접근 가능.
- Top(가장 위의 자료)는 가장 최신의 자료를 가리키며, 삽입되는 자료는 top위에 쌓여 새로운 top이 된다(Push).
- 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다(Pop).
- 활용 예시
- 웹 브라우저 방문기록(뒤로가기) : 가장 나중에 열린 페이지 부터
- 역순 문자열 : 가장 나중에 입력된 문자부터
- 실행 취소 : 가장 나중에 실행된 것 부터
- Queue
- 줄, 혹은 순서 대기. 선입선출(FIFO)방식의 자료구조
- 큐의 한쪽 끝에서(Rear) 삽입(enQueue) 작업이, 다른 쪽 끝에서(Front) 삭제(dnQueue) 작업이 이루어진다.
- 첫 원소와 끝 원소로만 접근 가능
- 활용 예시
- 우선순위가 같은 작업 예약
- 은행업무
- 콜센터
- 프로세스 관리
- 너비 우선 탐색(BFS)
- 캐시(Cache)
- 간단비교(Stack vs Queue)
- LIFO vs FIFO
- push,pop vs enQueue,dnQueue
- 함수호출,짝맞추기 vs 대기열, 캐시, 스캐쥴링
- 둘 모두 배열과 연결리스트로 구현된다.
답변
'공부 > 면접 준비' 카테고리의 다른 글
[면접준비] 아침 면접 준비 (24/04/17) (0) | 2024.04.17 |
---|---|
[면접준비] Day78 아침 면접 준비 (24/04/16) (0) | 2024.04.16 |
[면접준비] 정렬 알고리즘을 설명해 주세요. (24/04/11) (0) | 2024.04.11 |
[면접준비] Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요. (24/04/08) (0) | 2024.04.08 |
[면접준비] NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요. (24/04/08) (2) | 2024.04.08 |