So implementieren Sie eine Warteschlange mit zwei Stapeln

Autor: Laura McKinney
Erstelldatum: 3 April 2021
Aktualisierungsdatum: 19 November 2024
Anonim
12B.1 Warteschlange mit Array programmieren
Video: 12B.1 Warteschlange mit Array programmieren

Inhalt

Queue ist eine dynamische Datenstruktur, über die Sie in einem "first-come, first-out" -Prozess auf Daten zugreifen können. Ein Stack ist eine dynamische Datenstruktur, von der aus Sie in einem "Last-in-First-Out" -Prozess auf die Daten zugreifen können. Wenn Sie einen Stapel implementieren, wird nur der letzte von Ihnen eingegebene Artikel verfügbar. Wenn Sie auf die Daten zugreifen möchten, auf denen sie basiert (das erste Element, das Sie ablegen), behandeln Sie sie als Warteschlange. Dazu müssen Sie einen zweiten Heap implementieren.


Anweisungen

Das Implementieren einer Warteschlange mit zwei Stapeln ist einfach (Ablestock.com/AbleStock.com/Getty Images)

    Zwei Stapel entsprechen einer Reihe

  1. Schreiben Sie in Ihrem Texteditor den Code, um den Stack gemäß den in der gewünschten Programmiersprache verfügbaren Prozeduren und Funktionen zu implementieren. Rufen Sie diesen Stack_Entry-Stack auf. Legen Sie die Daten in Stack_Entry ab (viele Programmiersprachen verwenden den Befehl "push", um Daten hinzuzufügen). Führen Sie beispielsweise den Befehl "push" in Stack_Entry aus, um die Daten in der folgenden Reihenfolge einzugeben: "A", "B" und "C". "A" ist der erste Eintrag, der sich am unteren Rand des Stapels befindet. Wenn Sie auf dieses erste Element zugreifen möchten, behandeln Sie die Daten als Warteschlange.


  2. Schreiben Sie den Code, um einen zweiten Stapel gemäß den in der gewünschten Programmiersprache verfügbaren Prozeduren und Funktionen zu implementieren. Nennen Sie es StackSafe (viele Programmiersprachen verwenden den "Pop" -Befehl, um Daten aus einem Stapel zu entfernen).

  3. Entfernen Sie jedes Element aus dem Stack_Insert-Stack und legen Sie es in den Sleep-Stack. Im Allgemeinen entfernen Sie ein Stack_Input-Element und platzieren es in StackAid. Dann prüfen Sie, ob der Stack_Input leer ist. Wenn es nicht leer ist, entfernen Sie das nächste Element aus dem Stack_Input und legen Sie es in den Sleep-Stack. Wiederholen Sie diesen Vorgang, bis Stack_Input leer ist. In unserem Beispiel entfernen Sie "C" aus Stack_Input und legen es in Stack_Aid ab. Stellen Sie sicher, dass InputPilot leer ist. Entfernen Sie "B" aus Stack_Input und setzen Sie es auf Stack_Aid. Stellen Sie sicher, dass InputPilot leer ist. Entfernen Sie "A" von Stack_Input und setzen Sie es auf Stack_Aid. Stellen Sie sicher, dass InputPilot leer ist.


  4. Wenn der Stack_Path-Stack leer ist, befindet sich das Element, das sich in der Basis von Stack_Input ("A" in unserem Beispiel) befand, jetzt oben in Stack_Aside. Entfernen Sie das SleepSeat-Element, und Sie haben Ihren Stapel in eine Warteschlange umgewandelt. Ihr erster Artikel im Stapel ist jetzt der erste, der herausgenommen wird (First In, First Out oder FIFO In First In, First Out).

Wie

  • Die meisten Programmiersprachen stellen Funktionen bereit, um Daten in einem Vektor als eine Warteschlange oder einen Stapel zu behandeln. Das heißt, Sie können sowohl auf die letzte als auch auf die erste Position des Vektors zugreifen, unabhängig davon, von welchem ​​Ende Sie die Daten eingeben. Wenn sich Ihre Daten in einem Vektor befinden, müssen Sie sich nicht darum kümmern, auf sie als Warteschlange oder Stapel zuzugreifen. Wenn sich Ihre Daten jedoch in einem dynamischen Heap befinden und Sie sie als Warteschlange behandeln möchten, sollten Sie einen zweiten Stapel implementieren.

Was du brauchst

  • Ein Texteditor
  • Ein Compiler oder Interpreter für eine Programmiersprache

Der Bauch kann ein Problembereich für diejenigen ein, die ich in Form bringen wollen, e aber nie chaffen, Begeiterung in die gewünchten Ergebnie zu verwandeln. "Pneuzinho" it der A...

Braintorming it eine beliebte Methode zur Generierung von Gruppenideen. Der Proze beinhaltet eine Gruppe, die zuammenarbeitet und Ideen aufwirft. Anchließend bewerten, ergänzen oder lehnen d...

Interessante Publikationen.