JavaScript 스택 및 대기열
이 튜토리얼은 JavaScript에서 배열을 사용하여 스택 및 큐 구현에 대해 설명합니다.
JavaScript에서 배열을 사용하여 스택 및 큐 구현
JavaScript에서 배열 및 연결 목록을 사용하여 스택 및 큐를 구현할 수 있습니다. 스택은 선입 선출 원칙에 따라 작동합니다. 즉, 스택에 추가 된 첫 번째 요소는 다른 모든 요소를 제거한 후 제거되며 그 반대의 경우도 마찬가지입니다. 대기열은 선입 선출 원칙에 따라 작동합니다. 즉, 스택에 추가 된 첫 번째 요소가 먼저 제거되고 그 반대의 경우도 마찬가지입니다. 사전 정의 된 많은 함수를 사용할 수 있기 때문에 연결된 목록에 비해 배열로 스택 및 큐를 구현하는 것이 쉽습니다. 예를 들어 스택을 구현하기 위해push()
및pop()
함수를 사용할 수 있습니다. push()
함수는 스택 또는 배열의 끝에 요소를 추가하는 데 사용되며pop()
함수는 스택 또는 배열의 끝에서 요소를 제거하는 데 사용됩니다. JavaScript에서 배열을 사용하여 스택을 구현해 보겠습니다. 아래 코드를 참조하십시오.
var MyStack = [];
MyStack.push(1);
MyStack.push(9);
console.log('Stack before pop', MyStack);
MyStack.pop();
console.log('Stack after pop', MyStack);
출력:
Stack before pop (2) [1, 9]
Stack after pop [1]
위의 코드에서push()
함수를 사용하여 1과 9의 두 값을 스택에 추가하고 출력에서 두 값이 스택에 저장되어있는 것을 볼 수 있습니다. pop()
함수를 사용하여 스택에서 마지막 요소를 제거했으며 출력에서 마지막 요소가 스택에서 제거 된 것을 볼 수 있습니다. length
기능을 사용하여 스택의 크기를 확인할 수 있습니다. 배열의 스택 구현 성능은 배열 끝에 요소를 추가하고 끝에서도 제거하기 때문에 상당히 높습니다. 연결된 목록을 사용하여 스택을 구현할 수도 있지만 도움이되는 사전 빌드 함수를 찾을 수 없습니다. 이제 array,push()
및shift()
함수를 사용하여 큐를 구현해 보겠습니다. push()
함수는 큐 또는 배열의 끝에 요소를 추가하는 데 사용되며shift()
함수는 스택 또는 배열의 시작에서 요소를 제거하는 데 사용됩니다. 아래 코드를 참조하십시오.
var MyQueue = [];
MyQueue.push(1);
MyQueue.push(9);
console.log('Queue before shift', MyQueue);
MyQueue.shift();
console.log('Queue after shift', MyQueue);
출력:
Queue before shift (2) [1, 9]
Queue after shift [9]
위 코드에서push()
함수를 사용하여 1과 9의 두 값을 큐에 추가하고 출력에서 두 값이 큐에 저장되어 있음을 볼 수 있습니다. shift()
함수를 사용하여 큐에서 첫 번째 요소를 제거했으며 출력에서 첫 번째 요소가 큐에서 제거되었음을 확인할 수 있습니다. length
기능을 사용하여 대기열의 크기를 확인할 수 있습니다. shift()
함수가 첫 번째 요소를 제거 할 때 배열에서 각 요소를 한 단계 뒤로 이동해야하므로 배열을 사용한 큐 빌드의 성능이 매우 낮습니다. 따라서 많은 수의 요소를 포함하는 대기열을 구현하려면 연결 목록을 사용하여 대기열을 구현해야합니다.