logo

데이터 구조 튜토리얼

DS 튜토리얼

데이터 구조(DS) 튜토리얼은 데이터 구조의 기본 및 고급 개념을 제공합니다. 우리의 데이터 구조 튜토리얼은 초보자와 전문가를 위해 설계되었습니다.

데이터 구조는 데이터를 효율적으로 사용할 수 있도록 저장하고 구성하는 방법입니다.

데이터 구조 튜토리얼에는 배열, 포인터, 구조, 연결 목록, 스택, 큐, 그래프, 검색, 정렬, 프로그램 등과 같은 데이터 구조의 모든 주제가 포함되어 있습니다.

데이터 구조란 무엇입니까?

데이터 구조 이름은 메모리에서 데이터를 구성하는 것을 나타냅니다. C 언어의 배열과 같은 데이터 구조 중 하나를 이미 살펴보았듯이 메모리의 데이터를 구성하는 방법에는 여러 가지가 있습니다. 어레이는 데이터가 순차적으로, 즉 차례로 저장되는 메모리 요소의 모음입니다. 즉, 배열은 요소를 연속적으로 저장한다고 말할 수 있습니다. 이러한 데이터 구성은 데이터 구조 배열의 도움으로 수행됩니다. 메모리의 데이터를 구성하는 다른 방법도 있습니다. 다양한 유형의 데이터 구조를 살펴보겠습니다.

데이터 구조는 C, C++, Java 등과 같은 프로그래밍 언어가 아닙니다. 이는 메모리의 데이터를 구조화하기 위해 모든 프로그래밍 언어에서 사용할 수 있는 알고리즘 세트입니다.

메모리에 데이터를 구조화하기 위해 'n'개의 알고리즘이 제안되었으며 이러한 모든 알고리즘을 추상 데이터 유형이라고 합니다. 이러한 추상 데이터 유형은 규칙 세트입니다.

데이터 구조 튜토리얼

데이터 구조 유형

데이터 구조에는 두 가지 유형이 있습니다.

힙파이 정렬
  • 기본 데이터 구조
  • 비원시적 데이터 구조

원시 데이터 구조

기본 데이터 구조는 기본 데이터 유형입니다. int, char, float, double 및 포인터는 단일 값을 보유할 수 있는 기본 데이터 구조입니다.

비기본 데이터 구조

비원시적 데이터 구조는 두 가지 유형으로 나뉩니다.

반복 맵 자바
  • 선형 데이터 구조
  • 비선형 데이터 구조

선형 데이터 구조

데이터를 순차적으로 배열하는 것을 선형 데이터 구조라고 합니다. 이를 위해 사용되는 데이터 구조는 배열, 연결 목록, 스택 및 큐입니다. 이러한 데이터 구조에서 한 요소는 선형 형태로 다른 요소에만 연결됩니다.

하나의 요소가 비선형 데이터 구조로 알려진 'n'개의 요소에 연결되는 경우. 가장 좋은 예는 트리와 그래프입니다. 이 경우 요소는 무작위로 배열됩니다.

우리는 다음 주제에서 위의 데이터 구조에 대해 간략하게 논의할 것입니다. 이제 이러한 데이터 구조에 대해 수행할 수 있는 일반적인 작업을 살펴보겠습니다.

데이터 구조는 다음과 같이 분류될 수도 있습니다.

    정적 데이터 구조:컴파일 타임에 크기가 할당되는 데이터 구조 유형입니다. 따라서 최대 크기는 고정되어 있습니다.동적 데이터 구조:런타임 시 크기가 할당되는 데이터 구조 유형입니다. 따라서 최대 크기는 유연합니다.

주요업무

데이터 구조에서 수행할 수 있는 주요 작업 또는 일반적인 작업은 다음과 같습니다.

    수색:데이터 구조의 모든 요소를 ​​검색할 수 있습니다.정렬:데이터 구조의 요소를 오름차순 또는 내림차순으로 정렬할 수 있습니다.삽입:데이터 구조에 새 요소를 삽입할 수도 있습니다.업데이트:요소를 업데이트할 수도 있습니다. 즉, 해당 요소를 다른 요소로 바꿀 수도 있습니다.삭제:데이터 구조에서 요소를 제거하기 위해 삭제 작업을 수행할 수도 있습니다.

어떤 데이터 구조?

데이터 구조는 데이터를 효율적으로 사용할 수 있도록 구성하는 방법입니다. 여기서 우리는 공간적 측면과 시간적 측면 모두에서 단어를 효율적으로 사용했습니다. 예를 들어 스택은 구현을 위해 배열이나 연결된 목록 데이터 구조를 사용하는 ADT(추상 데이터 유형)입니다. 따라서 특정 ADT를 구현하려면 일부 데이터 구조가 필요하다는 결론을 내렸습니다.

ADT가 알려줍니다. 무엇 완료되어야 하며 데이터 구조가 알려줍니다. 어떻게 그것은 이루어져야합니다. 즉, ADT는 청사진을 제공하고 데이터 구조는 구현 부분을 제공한다고 말할 수 있습니다. 이제 질문이 생깁니다. 특정 ADT에 어떤 데이터 구조가 사용될지 어떻게 알 수 있습니까?

특정 ADT에서는 서로 다른 데이터 구조를 구현할 수 있지만 시간과 공간에 따라 서로 다른 구현을 비교합니다. 예를 들어 스택 ADT는 배열과 연결 목록 모두로 구현될 수 있습니다. 배열이 시간 효율성을 제공하고 연결 목록이 공간 효율성을 제공한다고 가정하면 현재 사용자의 요구 사항에 가장 적합한 것이 선택됩니다.

데이터 구조의 장점

데이터 구조의 장점은 다음과 같습니다.

    능률:특정 ADT를 구현하기 위한 데이터 구조의 선택이 적절하다면 프로그램은 시간과 공간 측면에서 매우 효율적이게 됩니다.재사용 성:데이터 구조가 재사용성을 제공한다는 것은 여러 클라이언트 프로그램이 데이터 구조를 사용할 수 있다는 것을 의미합니다.추출:ADT에 의해 지정된 데이터 구조는 추상화 수준도 제공합니다. 클라이언트는 데이터 구조의 내부 작업을 볼 수 없으므로 구현 부분에 대해 걱정할 필요가 없습니다. 클라이언트는 인터페이스만 볼 수 있습니다.

데이터 구조 색인


DS 기본 사항

  • DS 소개
  • DS 점근 분석
  • DS 구조

DS 어레이

  • 2D 배열

DS 연결 목록

인스턴스화된 자바
  • 연결리스트
    • 처음에 삽입
    • 끝에 삽입
    • 지정된 노드 뒤에 삽입
    • 처음부터 삭제
    • 종료 시 삭제
    • 지정된 노드 이후 삭제
    • 횡단
    • 수색
  • 이중 연결리스트
    • 처음에 삽입
    • 끝에 삽입
    • 지정된 노드 뒤에 삽입
    • 처음부터 삭제
    • 종료 시 삭제
    • 주어진 데이터를 가지고 있는 노드 삭제
    • 횡단
    • 수색
  • 순환 연결 목록
    • 처음에 삽입
    • 끝에 삽입
    • 처음부터 삭제
    • 마지막에 삭제
    • 횡단
    • 수색
  • 순환 이중 목록
    • 처음에 삽입
    • 끝에 삽입
    • 처음부터 삭제
    • 마지막에 삭제

DS 스택

DS 테일

DS 트리

DS 그래프

DS 검색 중

DS 정렬

인터뷰 질문들

디렉토리 이름 바꾸기
  • 단일 연결 리스트를 생성하고 표시하는 프로그램
  • n개의 노드로 구성된 단일 연결 리스트를 만들고 노드 수를 계산하는 프로그램
  • n개의 노드로 구성된 단일 연결 리스트를 만들고 이를 역순으로 표시하는 프로그램
  • 단일 연결 리스트의 처음부터 새 노드를 삭제하는 프로그램
  • 단일 연결 리스트의 중간에서 새 노드를 삭제하는 프로그램
  • 단일 연결 리스트의 마지막 노드를 삭제하는 프로그램
  • 단일 연결 리스트가 회문인지 확인하는 프로그램
  • 단일 연결 리스트에서 최대값과 최소값 노드를 찾는 프로그램
  • 단일 연결 리스트의 중간에 새 노드를 삽입하는 프로그램
  • 단일 연결 리스트의 시작 부분에 새 노드를 삽입하는 프로그램
  • 단일 연결 리스트의 끝에 새 노드를 삽입하는 프로그램
  • 단일 연결 리스트에서 중복된 요소를 제거하는 프로그램
  • 단일 연결 리스트의 요소를 검색하는 프로그램
  • 단일 연결 리스트의 요소를 정렬하는 프로그램
  • 데이터를 교환하지 않고 단일 연결 리스트의 노드를 교환하는 프로그램
  • 단일 연결 리스트의 마지막 요소를 첫 번째 요소와 바꾸는 프로그램

이중 연결 목록 프로그램

  • 주어진 이진 트리를 이중 연결 목록으로 변환하는 프로그램
  • 삼항 트리에서 이중 연결 목록을 생성하는 프로그램
  • N 노드의 이중 연결 목록을 생성하고 노드 수를 계산하는 프로그램
  • N 노드의 이중 연결 목록을 생성하고 이를 역순으로 표시하는 프로그램
  • 이중 연결 목록을 만들고 표시하는 프로그램
  • 이중 연결 목록의 시작 부분에서 새 노드를 삭제하는 프로그램
  • 이중 연결 리스트의 끝에서 새 노드를 삭제하는 프로그램
  • 이중 연결 리스트의 중간에서 새 노드를 삭제하는 프로그램
  • 이중 연결 리스트에서 최대값과 최소값 노드를 찾는 프로그램
  • 이중 연결 리스트의 시작 부분에 새 노드를 삽입하는 프로그램
  • 이중 연결 리스트 끝에 새 노드를 삽입하는 프로그램
  • 이중 연결 리스트 중간에 새 노드를 삽입하는 프로그램
  • 이중 연결 목록에서 중복 요소를 제거하는 프로그램
  • N 노드별로 이중 연결 목록을 회전하는 프로그램
  • 이중 연결 리스트에서 요소를 검색하는 프로그램
  • 이중 연결 목록의 요소를 정렬하는 프로그램

순환 연결 목록 프로그램

  • N개 노드의 순환 연결 목록을 생성하고 노드 수를 계산하는 프로그램
  • N개 노드의 순환 연결 리스트를 생성하고 이를 역순으로 표시하는 프로그램
  • 순환 연결 목록을 생성하고 표시하는 프로그램
  • 순환 연결 목록의 시작 부분에서 새 노드를 삭제하는 프로그램
  • 순환 연결 리스트 끝에서 새 노드를 삭제하는 프로그램
  • 순환 연결 리스트의 중간에서 새 노드를 삭제하는 프로그램
  • 순환 연결 리스트에서 최대값과 최소값 노드를 찾는 프로그램
  • 순환 연결 리스트의 시작 부분에 새 노드를 삽입하는 프로그램
  • 순환 연결 리스트 끝에 새 노드를 삽입하는 프로그램
  • 순환 연결 리스트의 중간에 새 노드를 삽입하는 프로그램
  • 순환 연결 목록에서 중복 요소를 제거하는 프로그램
  • 순환 연결 리스트의 요소를 검색하는 프로그램
  • 순환 연결 리스트의 요소를 정렬하는 프로그램

트리 프로그램

  • 이진 트리의 홀수 레벨 노드와 짝수 레벨 노드의 합 차이를 계산하는 프로그램
  • 이진 검색 트리를 구성하고 삭제 및 중위 순회를 수행하는 프로그램
  • 이진 트리를 이진 검색 트리로 변환하는 프로그램
  • 모든 잎이 같은 수준에 있는지 확인하는 프로그램
  • 두 나무가 동일한지 확인하는 프로그램
  • 이진 트리의 최대 너비를 찾는 프로그램
  • 이진 트리에서 가장 큰 요소를 찾는 프로그램
  • 나무의 최대 깊이 또는 높이를 구하는 프로그램
  • 이진 트리에서 최대 거리에 있는 노드를 찾는 프로그램
  • 이진 트리에서 가장 작은 요소를 찾는 프로그램
  • 이진 트리의 모든 노드의 합을 구하는 프로그램
  • N 키를 사용하여 가능한 이진 검색 트리의 총 개수를 찾는 프로그램
  • 연결리스트를 이용하여 이진트리를 구현하는 프로그램
  • 이진 트리에서 노드를 검색하는 프로그램

전제 조건

데이터 구조를 배우기 전에 C에 대한 기본 지식이 있어야 합니다.

청중

우리의 데이터 구조 튜토리얼은 초보자와 전문가를 돕기 위해 설계되었습니다.

문제

우리는 이 데이터 구조 튜토리얼에서 어떤 문제도 발견하지 못할 것이라고 확신합니다. 단, 틀린 부분이 있으면 문의게시판에 남겨주세요.