콘텐츠
대기열은 "선착순"으로 데이터에 액세스 할 수있는 동적 데이터 구조입니다. 스택은 동적 데이터 구조로, "마지막에서 처음 사용하는"프로세스에서 데이터에 액세스 할 수 있습니다. 스택을 구현하면 입력 한 마지막 항목 만 사용할 수있게됩니다. 기본 데이터 인 사용자가 입력 한 첫 번째 항목에 액세스하려면 해당 데이터를 대기열로 처리해야합니다. 이렇게하려면 두 번째 힙을 구현해야합니다.
지침
두 개의 스택을 사용하여 큐를 구현하는 것은 간단합니다. (Ablestock.com/AbleStock.com/Getty Images)-
텍스트 편집기에서 사용할 프로그래밍 언어로 사용할 수있는 절차와 함수에 따라 스택을 구현하는 코드를 작성하십시오. 이 Stack_Entry 스택을 호출하십시오. 데이터를 Stack_Entry에 넣으십시오 (많은 프로그래밍 언어가 "push"명령을 사용하여 데이터를 추가합니다). 예를 들어 Stack_Entry에서 "push"명령을 실행하면 "A", "B"및 "C"순서로 데이터를 입력 할 수 있습니다. "A"는 처음으로 들어가서 스택 맨 아래에 있습니다. 이 첫 번째 항목에 액세스하려면 데이터를 대기열로 처리해야합니다.
-
사용할 프로그래밍 언어에서 사용 가능한 프로 시저 및 함수에 따라 두 번째 스택을 구현하는 코드를 작성하십시오. StackSafe라고 부르십시오 (많은 프로그래밍 언어는 "pop"명령을 사용하여 스택에서 데이터를 제거합니다).
-
Stack_Insert 스택에서 각 항목을 제거하고 Sleep Stack에 배치하십시오. 일반적으로 Stack_Input 항목을 제거하고 StackAid에 배치합니다. 그런 다음 Stack_Input이 비어 있는지 확인합니다. 비어 있지 않으면 Stack_Input에서 다음 항목을 제거하고 수면 스택에 놓습니다. Stack_Input이 비어있을 때까지 반복하십시오. 이 예에서는 Stack_Input에서 "C"를 제거하고 Stack_Aid에 넣습니다. InputPilot이 비어 있는지 확인하십시오. Stack_Input에서 "B"를 제거하고 Stack_Aid로 설정하십시오. InputPilot이 비어 있는지 확인하십시오. Stack_Input에서 "A"를 제거하고 Stack_Aid로 설정하십시오. InputPilot이 비어 있는지 확인하십시오.
-
Stack_Path 스택이 비어 있으면 Stack_Input (이 예제에서 "A")에 있던 항목이 이제 Stack_Aside의 맨 위에 있습니다. SleepSeat 항목을 제거하면 스택이 대기열로 전환됩니다. 스택의 첫 번째 항목이 이제 꺼내 져야하는 첫 번째 항목입니다 (선입 선출, FIFO 선입 선출).
두 개의 스택이 한 행과 같습니다.
어떻게
- 대부분의 프로그래밍 언어는 마치 벡터의 데이터를 큐 또는 스택처럼 취급하는 기능을 제공합니다. 즉, 데이터를 입력하는 끝과 관계없이 벡터의 마지막 위치와 첫 번째 위치 모두에 액세스 할 수 있습니다. 데이터가 벡터에 있으면 큐 또는 스택으로 액세스하는 것에 대해 걱정할 필요가 없습니다. 그러나 데이터가 동적 힙에 있고 대기열로 처리하려는 경우 두 번째 스택을 구현해야합니다.
필요한 것
- 텍스트 편집기
- 일부 프로그래밍 언어 용 컴파일러 또는 인터프리터