>웹 프론트엔드 >JS 튜토리얼 >JavaScript가있는 데이터 구조 : 스택 및 큐

JavaScript가있는 데이터 구조 : 스택 및 큐

Joseph Gordon-Levitt
Joseph Gordon-Levitt원래의
2025-03-18 10:22:24632검색

스택 및 대기열 : 웹 개발의 기본 데이터 구조

많은 웹 개발자들이 무의식적으로 스택과 줄을 매일 사용합니다. 이러한 기본 데이터 구조는 공통 웹 기능을 강화합니다. 예를 들어, 텍스트 편집기의 실행 취소 기능은 스택에 의존하는 반면 웹 브라우저의 이벤트 루프 (클릭, 호버 등)는 큐를 사용합니다.

스택과 대기열을 탐색하여 유사성과 응용 프로그램을 강조하겠습니다.

스택 이해

스택은 플레이트 스택과 마찬가지로 데이터를 순차적으로 구성하는 선형 데이터 구조입니다. 항목 추가 (푸시)는 상단에 배치됩니다. 아이템을 제거하면 (팝핑) 상단에서 가져옵니다. 이 "마지막, 첫 번째"(Lifo) 순서는 추가 순서를 유지합니다.

JavaScript가있는 데이터 구조 : 스택 및 큐

텍스트 편집기의 실행 취소 기능은 다음을 완벽하게 보여줍니다. 각 편집은 스택에 "푸시"됩니다. 작업을 취소하는 최신 편집은 상단에서 가장 최근 편집을 "팝"합니다.

JavaScript가있는 데이터 구조 : 스택 및 큐

스택 작업 및 구현

코어 스택 작업은 push (상단에 추가) 및 pop (상단에서 제거)입니다. 스택을 처음부터 구축 할 수 있지만 JavaScript 어레이는 이미 push()pop() 사용하여 이러한 기능을 제공합니다.

JavaScript의 내장 배열 사용 예 :

 const 스택 = [1, 2, 3];
stack.push (4); // 4를 상단에 추가합니다
Console.log (스택); // [1, 2, 3, 4]
const popped = stack.pop (); // 상단에서 4를 제거합니다
Console.log (Popped); // 4
Console.log (스택); // [1, 2, 3]

대기열 이해

스택과 달리 대기열은 "FIRSO (First-out) (FIFO) 순서를 따릅니다. 상점에서 줄을 상상해보십시오. 첫 번째 사람은 첫 번째 사람입니다. 항목 추가 (eNqueueing)는 뒷면에 추가됩니다. 항목을 제거하면 (Dequeuing) 전면에서 제거됩니다.

대기열 작업 및 구현

기본 대기열 작업은 enqueue (후면에 추가) 및 dequeue (전면에서 제거)입니다. 스택과 마찬가지로 JavaScript 어레이는 Enqueueing을 위해 push() 사용하여 대기열을 효율적으로 시뮬레이션하고 탈케 링을 위해 shift() 효율적으로 시뮬레이션 할 수 있습니다.

JavaScript의 내장 배열 사용 예 :

 const 큐 = [1, 2, 3];
queue.push (4); // 뒷면에 4를 추가합니다
Console.log (대기열); // [1, 2, 3, 4]
const dequeued = queue.shift (); // 전면에서 1을 제거합니다
Console.log (Dequeued); // 1
Console.log (대기열); // [2, 3, 4]

결론

스택과 대기열은 간단하지만 강력한 데이터 구조입니다. 그들의 간단한 본질은 웹 개발에서 그들의 중요성에 달려 있습니다. 그들의 LIFO 및 FIFO 원칙을 이해하면 다양한 응용 프로그램에서 효율적인 데이터 관리가 가능합니다. 사용자 정의 구현은 학습에 유용하지만 JavaScript의 내장 배열 방법을 활용하면 대부분의 시나리오에 실용적이고 효율적인 접근 방식이 제공됩니다.

이 게시물은 프리랜서 웹 개발자이자 기술 작가 인 Subha Chanda의 기여로 업데이트되었습니다.

위 내용은 JavaScript가있는 데이터 구조 : 스택 및 큐의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.