자료구조 Flashcards
자료구조 관련 개발자 면접 질문 정리
리스트란 무엇인가?
동적으로 크기가 조절되는 배열로, 제네릭 타입을 지원하며 요소의 추가, 삭제, 검색 등을 효율적으로 처리하는 선형 데이터 구조입니다.
연결 리스트란 무엇인가?
각 노드가 데이터와 다음 노드에 대한 참조를 포함하여, 동적 크기 조절이 가능하고 삽입 및 삭제가 효율적인 선형 데이터 구조입니다.
스택이란 무엇인가?
후입선출 원칙에 따라 요소를 관리하며, 요소의 추가와 제거는 스택의 맨 위에서만 이루어지는 선형 데이터 구조입니다.
큐란 무엇인가?
선입선출 원칙에 따라 요소를 관리하며, 요소는 한쪽 끝에서 추가되고 반대쪽 끝에서 제거되는 선형 데이터 구조입니다.
트리란 무엇인가?
각 노드가 데이터와 자식 노드에 대한 참조를 포함하며, 루트 노드에서 시작하여 하위 노드로 확장될 수 있는 계층적 구조를 가진 비선형 데이터 구조입니다.
이진탐색트리란 무엇인가?
각 노드의 왼쪽 서브트리에 있는 값은 해당 노드의 값보다 작고, 오른쪽 서브트리에 있는 값은 해당 노드의 값보다 큰, 요소의 삽입, 삭제 및 검색이 효율적인 이진 트리 구조입니다.
힙이란 무엇인가?
최대 힙은 부모 노드가 자식 노드보다 크거나 같은 값을 가지며, 최소 힙은 부모 노드가 자식 노드보다 작거나 같은 값을 가지는 완전 이진 트리 구조입니다.
그래프란 무엇인가?
그래프는 정점 간의 관계를 모델링하며, 유향/무향, 가중/비가중 그래프 등 다양한 종류가 있는 정점과 간선으로 구성된 비선형 데이터 구조입니다. 주요 알고리즘으로 너비 우선 탐색, 깊이 우선 탐색, 다익스트라 알고리즘, 크루스칼 알고리즘이 있습니다.
해시테이블이란 무엇인가?
해시 함수를 사용하여 데이터를 배열에 매핑하고 키와 값을 저장하는 데이터 구조입니다.
해싱이란 무엇인가?
키를 해시 함수에 적용하여 배열의 인덱스를 생성하는 프로세스입니다. 입력된 키를 특정 범위 내의 정수로 변환하며 이 정수를 해시 값 또는 해시 코드라고 합니다.
해시테이블에 충돌이 나면 어떻게 처리하는가?
충돌은 서로 다른 키가 동일한 해시 값을 가질 때 발생합니다.
체이닝이란?
해시테이블의 각 인덱스가 하나의 연결 리스트를 가지고 충돌이 발생하면 동일한 해시 값을 가진 모든 요소를 연결 리스트로 저장하는 것입니다.
오픈 어드레싱이란?
충돌이 발생하면 해시 테이블 내의 다른 빈 슬롯을 찾아 데이터를 저장하는 것입니다.
오픈 어드레싱 방법 중 선형 탐사란?
충돌이 발생하면 다음 슬롯을 차례대로 검사하는 방법입니다.
오픈 어드레싱 방법 이차 탐사란?
충돌이 발생하면 제곱 수의 간격으로 슬롯을 검사하는 방법입니다.