최신 Javascript를 사용한 데이터 구조 및 알고리즘 소개

데이터 구조 및 알고리즘이란?
데이터 구조(DS)는 데이터를 효율적으로 사용할 수 있도록 구성하는 방법입니다.
알고리즘은 어떤 작업을 수행하는 방법을 설명하는 일련의 단계별 지침입니다.

데이터 구조와 알고리즘이 중요한 이유
  • 학습 데이터 구조는 깨끗하고 일관된 코드를 작성하는 데 도움이 됩니다.
  • 효과적인 알고리즘은 문제를 더 작은 부분으로 나누고 각 부분을 코드로 해결하는 방법에 대해 신중하게 생각하는 데 도움이 됩니다.

  • 이 기사에서는 배열, 대기열, 스택, 연결 목록과 같은 데이터 구조 및 알고리즘 목록을 살펴봅니다.

    어레이
    배열은 둘 이상의 값을 보유할 수 있는 특수 변수입니다.
    배열 리터럴을 사용하는 것이 JavaScript 배열을 만드는 가장 쉬운 방법입니다.const array_name = [item1, item2, ...];예시:const snacks = ["Ice cream", "Nuggets", "Popcorn"];어레이에서 사용 가능한 작업은 다음과 같습니다.
  • 배열 요소 액세스
  • 배열 요소 변경
  • 반복 배열 요소
  • 배열 요소 추가

  • 대기줄
    큐는 요소가 큐의 끝에 삽입되고 큐의 앞에서 제거되는 정렬된 요소 목록입니다. 대기열은 후입선출(LIFO) 원칙에 따라 작동하는 스택과 다른 선입선출(FIFO) 원칙에 따라 작동합니다.
    대기열에는 두 가지 주요 작업이 있습니다.
  • 엔케. 대기열 끝에 새 요소를 삽입합니다.
  • 대기열에서 제거합니다. 큐 앞에서 요소를 제거합니다.
    대기열에 넣기

  • enqueue(element){
             this.items[this.count] = element;
             this.count ++;
         }
    

    대기열에서 빼기

    dequeue(){
             if (this.isEmpty()) {
                 return undefined;
             }
             let result = this.items[this.lowestCount]; 
             delete this.items[this.lowestCount]; 
             this.lowestCount ++; 
             return result; 
    
         }
    


    스택
    스택은 요소의 추가 또는 제거가 특정 순서, 즉 LIFO(Last in First Out) AND FILO(First in Last Out)를 따르는 선형 데이터 구조입니다.
    다음은 배열을 사용하는 스택 클래스의 예입니다.

    // Stack class
    class Stack {
    
        // Array is used to implement stack
        constructor()
        {
            this.items = [];
        }
    
        // Functions to be implemented
        // push(item)
        // pop()
        // peek()
        // isEmpty()
        // printStack()
    }
    


    다음은 스택을 구현하는 데 사용할 수 있는 작업 목록입니다.
  • 밀기 : 요소를 삽입합니다.
  • 팝: 요소 제거
  • 엿보기: 최상위 요소를 가져옵니다.
  • 크기: 스택의 크기를 가져옵니다.
  • isEmpty: 비어 있으면 스택이 비어 있는지 확인하고 그렇지 않으면 false를 반환합니다.
  • 지우기: 스택을 재설정합니다.

  • 연결된 목록
    연결된 목록은 각 요소가 해당 목록의 다음 개체에 대한 포인터 또는 링크를 포함하는 별도의 개체인 선형 데이터 구조입니다. 각 요소(일반적으로 노드라고 함)에는 저장된 데이터와 다음 노드에 대한 링크라는 두 가지 항목이 포함되어 있습니다.
    다음은 연결된 목록 노드의 예입니다.

    // User defined class node
    class Node {
        // constructor
        constructor(element)
        {
            this.element = element;
            this.next = null
        }
    }
    


    연결된 목록에서 사용 가능한 작업 목록
  • 푸시: 연결된 목록의 끝에 요소를 삽입합니다.
  • 삽입: 연결된 목록의 지정된 인덱스에 요소를 삽입합니다.
  • 제거: 연결 목록의 끝 요소를 제거합니다.
  • RemoveAt: 연결된 목록의 지정된 인덱스에서 요소를 제거합니다.
  • GetElementAt: 연결된 목록의 지정된 인덱스에 있는 요소를 가져옵니다.
  • IndexOf: 연결된 목록에 있는 요소의 인덱스를 반환합니다.

  • 결론
    데이터 구조는 깨끗하고 일관된 코드를 작성하는 데 도움이 되며 알고리즘은 문제를 더 작은 부분으로 나누고 코드로 각 부분을 해결하는 방법에 대해 신중하게 생각하는 데 도움이 됩니다. 이러한 데이터 구조 및 알고리즘 중 일부는 배열, 대기열, 스택, 연결 목록입니다. 이 기사가 귀하의 이해와 만족을 소개하기를 바랍니다.

    좋은 웹페이지 즐겨찾기