상위 50개 데이터 구조 인터뷰 질문 및 답변
꿈의 직업을 얻기 위한 신입 지원자와 경험 많은 지원자를 위한 데이터 구조 인터뷰 질문과 답변은 다음과 같습니다.
1) 데이터 구조란 무엇인가?
데이터 구조는 데이터가 구성되고 조작되는 방식을 나타냅니다. 데이터 액세스를 보다 효율적으로 만드는 방법을 모색하고 있습니다. 데이터 구조를 다룰 때 우리는 하나의 데이터 조각뿐만 아니라 다양한 데이터 세트와 이들이 어떻게 조직화된 방식으로 서로 연관될 수 있는지에 초점을 맞춥니다.
2) 파일과 구조 저장 구조를 구별합니다.
두 데이터 구조의 주요 차이점은 액세스되는 메모리 영역입니다. 컴퓨터 시스템의 주 메모리가 상주하는 구조를 다룰 때 이를 저장 구조라고 합니다. 보조 구조를 다룰 때는 이를 파일 구조라고 합니다.
무료 PDF 다운로드: 데이터 구조 인터뷰 질문 및 답변
3) 이진 검색은 언제 가장 잘 적용됩니까?
이진 검색은 요소가 이미 순서대로 정렬되어 있거나 정렬되어 있는 경우 목록을 검색하는 데 가장 잘 적용되는 알고리즘입니다. 목록은 중간부터 검색되므로 해당 중간 값이 대상 검색 키가 아닌 경우 목록의 아래쪽 절반에서 검색을 계속할지 아니면 위쪽 절반에서 검색을 계속할지 확인합니다. 그러면 분할 및 검색이 동일한 방식으로 계속됩니다.
4) 무엇입니까 연결리스트?
연결리스트(linked list)는 각 노드가 그 다음 노드에 연결되어 있는 일련의 노드입니다. 이는 데이터 저장을 위한 체인과 같은 링크를 형성합니다.
5) XNUMX차원의 모든 요소를 어떻게 참조합니까? 정렬?
0차원 배열의 모든 요소를 참조하려면 인덱스 루프를 사용해야 합니다. 따라서 카운터는 XNUMX부터 배열 크기에서 XNUMX을 뺀 크기까지 실행됩니다. 이러한 방식으로 루프 카운터를 배열 첨자로 사용하여 모든 요소를 순서대로 참조할 수 있습니다.
6) 데이터 구조는 어떤 영역에 적용되나요?
데이터 구조는 데이터와 관련된 거의 모든 측면에서 필수적입니다. 일반적으로 효율적인 데이터 구조를 수반하는 알고리즘은 수치해석, 운영 체제, AI, 컴파일러 설계, 데이터베이스 관리, 그래픽 및 통계 분석 등이 있습니다.
7) LIFO란 무엇입니까?
LIFO는 Last In First Out의 약어입니다. 이는 데이터에 액세스하고, 저장하고, 검색하는 방법을 나타냅니다. 이 방식을 사용하면 마지막에 저장된 데이터가 가장 먼저 추출되어야 합니다. 이는 또한 첫 번째 데이터에 액세스하려면 이 첫 번째 데이터 이전에 저장된 다른 모든 데이터를 먼저 검색하고 추출해야 함을 의미합니다.
8) 대기열이란 무엇입니까?
큐는 데이터 목록이나 스트림을 시뮬레이션할 수 있는 데이터 구조입니다. 이 구조에서는 한쪽 끝에 새 요소가 삽입되고 다른 쪽 끝에는 기존 요소가 제거됩니다.
9) 이진 트리란 무엇입니까?
이진 트리는 왼쪽 노드와 오른쪽 노드라는 두 개의 노드를 갖는 데이터 구조의 한 유형입니다. 프로그래밍에서 이진 트리는 연결 목록 구조의 확장입니다.
10) 재귀함수를 다룰 때 어떤 데이터 구조가 적용되나요?
재귀는 종료 조건에 따라 자신을 호출하는 함수로 스택을 사용합니다. LIFO를 사용하면 재귀 함수를 호출하면 호출이 종료된 후 호출 함수로 돌아가는 방법을 알 수 있도록 반환 주소가 저장됩니다.
11) 스택이란 무엇입니까?
스택은 최상위 요소에만 액세스할 수 있는 데이터 구조입니다. 데이터가 스택에 저장되면 각 데이터는 아래로 푸시되고 가장 최근에 추가된 데이터가 맨 위에 남습니다.
12) 이진 검색 트리 설명
이진 검색 트리는 매우 효율적으로 검색할 수 있는 방식으로 데이터를 저장합니다. 왼쪽 하위 트리에는 키가 노드의 키 값보다 작은 노드가 포함되고, 오른쪽 하위 트리에는 키가 노드의 키 값보다 크거나 같은 노드가 포함됩니다. 게다가 두 하위 트리 모두 이진 검색 트리이기도 합니다.
13) 다차원 배열이란 무엇입니까?
다차원 배열은 여러 인덱스를 사용하여 데이터를 저장합니다. 보드게임의 데이터 표현, 두 개 이상의 열에 데이터가 저장된 테이블 등 XNUMX차원 인덱싱을 사용하여 표현할 수 없는 데이터를 저장할 때 유용합니다.
14) 연결된 목록은 선형 또는 비선형 데이터 구조로 간주됩니까?
연결된 목록을 적용하려는 위치에 따라 다릅니다. 스토리지를 기반으로 하는 경우 연결된 목록은 비선형으로 간주됩니다. 반면에 액세스 전략을 기반으로 하는 경우 연결된 목록은 선형으로 간주됩니다.
15) 동적 메모리 할당은 데이터 관리에 어떻게 도움이 됩니까?
간단한 구조화된 데이터 유형을 저장할 수 있는 것 외에도 동적 메모리 할당은 별도로 할당된 구조화된 블록을 결합하여 필요에 따라 확장 및 축소되는 복합 구조를 형성할 수 있습니다.
16) FIFO란 무엇입니까?
FIFO는 First-in, First-out의 약자로 대기열에서 데이터에 액세스하는 방법을 나타내는 데 사용됩니다. 대기열 목록에 데이터가 삽입되었습니다. 가장 긴 데이터가 먼저 제거됩니다.
17) 순서리스트란 무엇입니까?
순서가 지정된 목록은 목록에서 각 노드의 위치가 해당 키 구성 요소의 값에 따라 결정되므로 목록을 탐색할 때 키 값이 증가하는 순서를 형성하는 목록입니다.
18) 병합 정렬이란 무엇입니까?
병합 정렬은 데이터를 정렬하기 위한 분할 정복 접근 방식입니다. 일련의 데이터에서 인접한 데이터를 병합하고 정렬하여 더 큰 정렬 목록을 만듭니다. 그런 다음 이러한 정렬 목록은 다시 병합되어 더 큰 정렬 목록을 형성하며, 이는 단일 정렬 목록이 생길 때까지 계속됩니다.
19) NULL과 VOID 구별하기
Null은 값인 반면 Void는 데이터 유형 식별자입니다. Null 값이 지정된 변수는 빈 값을 나타냅니다. void는 초기 크기가 없는 포인터를 식별하는 데 사용됩니다.
20) 연결리스트의 가장 큰 장점은 무엇입니까?
연결리스트는 쉽게 수정할 수 있기 때문에 이상적인 데이터 구조입니다. 즉, 연결된 목록 편집은 목록에 있는 요소 수에 관계없이 작동합니다.
21) PUSH와 POP의 차이점은 무엇인가요?
푸시 및 팝핑은 데이터가 스택에 저장되고 검색되는 방식에 적용됩니다. 푸시는 데이터가 추가되는 것을 의미합니다. 즉, 데이터가 스택에 "푸시"된다는 의미입니다. 반면, 팝은 데이터 검색을 의미하며, 특히 액세스되는 최상위 데이터를 나타냅니다.
22) 선형 검색이란 무엇입니까?
선형 검색은 순차적인 데이터 구조에서 대상 키를 검색하는 방식을 나타냅니다. 이 방법에서는 목록의 각 요소를 검사하고 대상 키와 비교합니다. 파일을 찾거나 파일 끝에 도달할 때까지 프로세스가 반복됩니다.
23) 변수 선언은 메모리 할당에 어떤 영향을 미치나요?
할당되거나 예약될 메모리 양은 선언되는 변수의 데이터 유형에 따라 달라집니다. 예를 들어, 변수가 정수 유형으로 선언되면 해당 변수에 대해 32비트의 메모리 저장 공간이 예약됩니다.
24) 스택에 비해 힙의 장점은 무엇입니까?
힙은 스택보다 유연합니다. 힙의 메모리 공간은 필요에 따라 동적으로 할당 및 할당 해제될 수 있기 때문입니다. 그러나 힙의 메모리는 해당 스택과 비교할 때 때때로 느릴 수 있습니다.
25) 접미사 표현이란 무엇입니까?
후위 표현식은 각 연산자가 피연산자 뒤에 오는 표현식입니다. 이 형식의 장점은 하위 표현식을 괄호로 그룹화하거나 연산자 우선 순위를 고려할 필요가 없다는 것입니다.
26) 데이터 추상화란 무엇입니까?
데이터 추상화는 복잡한 데이터 문제를 관리 가능한 단위로 나누는 강력한 도구입니다. 이는 데이터 객체가 어떻게 표현되고 메모리에 저장되는지에 지나치게 관심을 두지 않고 관련된 데이터 객체와 이러한 데이터 객체에 대해 수행될 작업을 처음에 지정함으로써 적용됩니다.
27) 이진 검색 트리에 새 항목을 어떻게 삽입합니까?
삽입할 데이터가 고유한 값(즉, 트리의 기존 항목이 아님)이라고 가정하고 먼저 트리가 비어 있는지 확인합니다. 비어 있으면 루트 노드에 새 항목을 삽입하기만 하면 됩니다. 비어 있지 않은 경우 새 항목의 키를 참조하세요. 루트 키보다 작으면 루트의 왼쪽 하위 트리에 삽입하고, 그렇지 않으면 루트의 오른쪽 하위 트리에 삽입합니다.
28) 배열에 대한 선택 정렬은 어떻게 작동합니까?
선택 정렬은 매우 직관적인 정렬 알고리즘이지만 반드시 효율적이지는 않습니다. 이 프로세스에서는 가장 작은 요소를 먼저 찾아 첨자 XNUMX의 요소로 전환하여 가장 작은 요소를 첫 번째 위치에 배치합니다.
하위 배열에 남아 있는 가장 작은 요소는 아래 첨자 1부터 n-1까지 옆에 위치하며 아래 첨자 1의 요소로 전환되어 두 번째로 작은 요소가 두 번째 위치에 배치됩니다. 마지막 요소까지 동일한 방식으로 단계가 반복됩니다.
29) 부호 있는 숫자와 부호 없는 숫자는 메모리에 어떤 영향을 미치나요?
부호 있는 숫자의 경우 첫 번째 비트는 양수인지 음수인지를 나타내는 데 사용되므로 8비트가 부족합니다. 부호 없는 숫자를 사용하면 해당 숫자에 대해 모든 비트를 사용할 수 있습니다. 효과는 숫자 범위에서 가장 잘 나타납니다. 부호 없는 0비트 숫자의 범위는 255~8이고, 128비트 부호 있는 숫자의 범위는 -127~+XNUMX입니다.
30) 이진 트리가 가질 수 있는 최소 노드 수는 몇 개입니까?
이진 트리는 노드에 NULL 값이 있을 때 발생하는 최소 1개의 노드를 가질 수 있습니다. 또한 이진 트리에는 2개 또는 XNUMX개의 노드가 있을 수도 있습니다.
31) 동적 데이터 구조란 무엇입니까?
동적 데이터 구조는 프로그램이 실행됨에 따라 확장 및 축소되는 구조입니다. 데이터 크기에 따라 조정할 수 있으므로 유연한 데이터 조작 수단을 제공합니다.
32) 포인터는 어떤 데이터 구조에 적용되나요?
연결리스트에 사용되는 포인터는 데이터 구조에서 다양한 용도로 사용됩니다. 이 개념을 활용하는 데이터 구조에는 스택, 큐, 연결 목록 및 이진 트리가 포함됩니다.
33) 모든 선언문은 메모리에 고정된 예약을 초래합니까?
포인터를 제외하면 대부분의 선언이 그렇습니다. 포인터 선언은 데이터에 메모리를 할당하는 것이 아니라 포인터 변수의 주소에 메모리를 할당합니다. 데이터에 대한 실제 메모리 할당은 런타임 중에 이루어집니다.
34) ARRAY란 무엇입니까?
배열을 처리할 때 데이터는 데이터 시퀀스의 요소 번호를 참조하는 인덱스를 사용하여 저장되고 검색됩니다. 이는 데이터에 어떤 순서로든 액세스할 수 있음을 의미합니다. 프로그래밍에서 배열은 여러 개의 인덱스 요소가 있는 변수로 선언됩니다.
35) 우선순위 대기열을 구현할 때 필요한 최소 대기열 수는 얼마입니까?
이 경우 필요한 최소 대기열 수는 XNUMX개입니다. 한 큐는 우선순위를 정렬하기 위한 것이고 다른 큐는 실제 데이터 저장에 사용됩니다.
36) 가장 빠른 것으로 간주되는 정렬 알고리즘은 무엇입니까?
정렬 알고리즘에는 빠른 정렬, 버블 정렬, 풍선 정렬, 기수 정렬, 병합 정렬 등 다양한 유형이 있습니다. 각 알고리즘은 특정 데이터 구조 및 데이터 세트에 맞게 설계되었으므로 가장 빠른 정렬 알고리즘은 없다고 간주할 수 있습니다. 정렬하려는 데이터 세트에 따라 다릅니다.
37) STACK과 ARRAY를 구별합니다.
스택은 LIFO 패턴을 따릅니다. 이는 데이터 액세스가 첫 번째 데이터가 추출될 때 마지막 데이터가 저장되는 순서를 따른다는 것을 의미합니다. 반면에 배열은 특정 순서를 따르지 않으며 대신 배열 내에서 인덱스된 요소를 참조하여 액세스할 수 있습니다.
38) 이진 검색 트리를 검색하기 위한 기본 알고리즘을 제시하세요.
1. 트리가 비어 있으면 대상이 트리에 없는 것입니다. 검색을 종료합니다.
2. 트리가 비어 있지 않으면 대상은 트리에 있습니다.
3. 대상이 루트 항목에 있는지 확인
4. 루트 항목에 대상이 없으면 대상이 루트 값보다 작은지 확인합니다.
5. 대상이 루트 값보다 작은 경우 왼쪽 하위 트리를 검색합니다.
6. 그렇지 않으면 오른쪽 하위 트리를 검색합니다.
39) 디큐(dequeue)란 무엇인가요?
Dequeue는 양방향 큐입니다. 양쪽 끝에서 요소를 삽입하거나 제거할 수 있는 구조입니다.
40) 버블 정렬이란 무엇이며 어떻게 수행합니까?
버블 정렬은 배열과 같은 데이터 구조에 적용할 수 있는 정렬 기술 중 하나입니다. 인접한 요소를 비교하고 순서가 잘못된 경우 해당 값을 교환하는 방식으로 작동합니다. 이 방법을 사용하면 작은 값이 목록의 맨 위로 "버블링"되고, 큰 값이 맨 아래로 가라앉습니다.
41) 연결리스트의 부분은 무엇입니까?
연결된 목록은 일반적으로 머리와 꼬리라는 두 부분으로 구성됩니다. 머리와 꼬리 사이에는 실제 노드가 있습니다. 이 모든 노드는 순차적으로 연결됩니다.
42) 선택 정렬은 어떻게 작동하나요?
선택 정렬은 목록에서 가장 작은 숫자를 선택하여 맨 앞에 배치하는 방식으로 작동합니다. 이 프로세스는 목록 끝 부분의 두 번째 위치에 대해 반복됩니다. 가장 간단한 정렬 알고리즘입니다.
43) 그래프란 무엇인가요?
그래프는 일련의 순서쌍을 포함하는 데이터 구조의 한 유형입니다. 이러한 순서쌍은 모서리 또는 호라고도 하며 데이터를 저장하고 검색할 수 있는 노드를 연결하는 데 사용됩니다.
44) 선형과 비선형 데이터 구조를 구별합니다.
선형 데이터 구조는 데이터 요소들이 서로 인접해 있는 구조이다. 선형 데이터 구조의 예로는 배열, 연결 목록, 스택 및 대기열이 있습니다. 반면, 비선형 데이터 구조는 각 데이터 요소가 두 개 이상의 인접한 데이터 요소와 연결될 수 있는 구조입니다. 비선형 데이터 구조의 예로는 트리와 그래프가 있습니다.
45) AVL 트리란 무엇입니까?
AVL 트리는 항상 부분 균형 상태를 유지하는 이진 검색 트리 유형입니다. 균형은 루트에서 하위 트리 높이 간의 차이로 측정됩니다. 이 자체 균형 트리는 이와 같이 설계된 최초의 데이터 구조로 알려져 있습니다.
46) 이중 연결 리스트란 무엇입니까?
이중 연결 목록은 데이터 요소 간의 순회가 양방향으로 수행될 수 있는 특별한 유형의 연결 목록입니다. 이는 모든 노드에 두 개의 링크(다음 노드에 연결되는 링크와 이전 노드에 연결되는 링크)가 있으면 가능합니다.
47) 허프만의 알고리즘은 무엇입니까?
허프만 알고리즘은 주어진 가중치에서 최소 가중치 경로 길이를 갖는 확장 이진 트리를 생성하는 데 사용됩니다. 각 데이터 요소의 발생 빈도를 포함하는 테이블을 사용합니다.
48) 피보나치 수색이란 무엇입니까?
피보나치 검색은 정렬된 배열에 적용되는 검색 알고리즘입니다. 이는 목표 요소에 도달하는 데 필요한 시간을 크게 줄일 수 있는 분할 정복 접근 방식을 사용합니다.
49) 재귀 알고리즘을 간략하게 설명해주세요.
재귀 알고리즘은 문제를 더 작고 관리 가능한 하위 문제로 나누어 문제를 목표로 합니다. 하나의 하위 문제를 처리한 후 한 재귀의 출력은 다음 재귀 프로세스의 입력이 됩니다.
50) 연결된 목록에서 대상 키를 어떻게 검색합니까?
연결된 목록에서 대상 키를 찾으려면 순차 검색을 적용해야 합니다. 각 노드를 순회하여 대상 키와 비교하고, 다르면 다음 노드로 링크를 따라갑니다. 이 순회는 대상 키를 찾거나 마지막 노드에 도달할 때까지 계속됩니다.
이러한 면접 질문은 귀하의 비바(구술)에도 도움이 될 것입니다. 우리 전문가 팀은 다음 목록을 작성했습니다. 가장 일반적인 HR 라운드 인터뷰 질문 및 답변 데이터 구조 면접 중에 면접관이 질문할 수 있습니다.
데이터 구조에 대한 매우 유익하고 기본적인 질문입니다.
좋습니다… 하지만 아직 다루어야 할 주제가 더 많습니다.
tanq….나에게는 매우 효과적이었습니다…
매우 도움이 되었습니다, 정말 감사합니다
감사해요……. 이것은 정말 도움이 됩니다.
감사합니다...많은 도움이 되었습니다...
감사합니다 가장 중요한 질문이에요
매우 도움이 됨
감사합니다. 매우 도움이 되었습니다.
Ty
감사합니다. 이 비바 목소리는 저에게 너무나 중요하며 귀하의 페이지를 발견하게 되어 기쁩니다. 감사합니다 선생님 ♥
행운을 빌어요 😊
매우 full..tq를 사용하여 관리자를 많이 사용합니다.
Tq.저에게 매우 도움이 되었습니다
매우 도움이 되었습니다. 감사합니다.
일련의 좋은 질문
여기에 데이터 구조에 대한 몇 가지 까다로운 질문을 넣을 수도 있습니다.
Tq 우리에게 매우 도움이 됐어요
매우 유익했어요
흥미로운. 그리고 도움이 됐어요
매우 유익하고 도움이 됩니다…
좋은…
Tysm.. 나에게 도움이 되는 말이에요..
데이터 구조에 대한 인터뷰 기반 질문에 대한 명확한 아이디어를 얻었습니다.
매우 도움이 된다
감사합니다. 매우 도움이 됩니다.
감사합니다 선생님...오늘은 저의 비바입니다. 가장 좋은 질문이 아닐까 싶습니다...정말 감사합니다..
매우 도움이 됩니다… 감사합니다
스피
정부 시험 준비 .is dis Career.guru99가 나에게 도움이 되었는지 아니면 답장을 보내 주시겠어요?
나마텐
도움이 되는 질문
Tqsm 제게는 매우 유용합니다. 정말 감사합니다.
매우 유익합니다. 모두 모아주셔서 감사합니다
매우 도움이 되었습니다, 정말 감사합니다
그것에 대해 메모
매우 유용합니다… 이해하기 쉽습니다
가능
엄청난!! 질문과 답변 학습이 정말 쉽고 간단했고, 결국 테스트도 가격이 최고였습니다!!
당신에게 선생님 감사합니다
Tq 아주 좋은 질문입니다. 도움이 되었습니다.
좋아요….계속하세요.
이렇게 귀한 질문을 해주셔서 정말 감사드립니다...
좋은 질문 세트이지만 더 많은 질문을 추가해야 하는 요구 사항
감사합니다
매우 도움이 되었습니다 감사합니다...........................
고맙습니다
고맙습니다
매우 도움이 된다
정말 감사합니다
고맙습니다
정말 도움이 되었습니다.
감사를 표하고 싶습니다.
Ty
정말 감사합니다
이런 중요한 질문에 감사드립니다
매우 도움이 됩니다. 주제를 더 추가해 주세요. 매우 감사합니다
좋은 컬렉션이네요