Heim  >  Artikel  >  Backend-Entwicklung  >  Entwerfen Sie eine Warteschlangendatenstruktur, um den minimalen oder maximalen Wert in O(1)-Zeit zu erhalten

Entwerfen Sie eine Warteschlangendatenstruktur, um den minimalen oder maximalen Wert in O(1)-Zeit zu erhalten

PHPz
PHPznach vorne
2023-09-10 14:33:021062Durchsuche

Entwerfen Sie eine Warteschlangendatenstruktur, um den minimalen oder maximalen Wert in O(1)-Zeit zu erhalten

C++ verfügt über eine Deque-Header-Datei zur Handhabung von Eigenschaften von Stapeln und Warteschlangen. In Datenstrukturen erfordert die Lösung des Problems der O(1)-Zeitkomplexität eine konstante Zeit. Durch die Verwendung einer Deque in diesem Programm erhalten wir die Vorteile der Verwendung sowohl eines Stacks als auch einer Warteschlange.

In diesem Artikel lösen wir die Datenstruktur der Warteschlange, um den minimalen oder maximalen Wert einer Zahl in O(1)-Zeit zu erhalten.

Grammatik

deque<data_type> name_of_queue;

Parameter

  • Deque – Dies wird als Deque bezeichnet und ordnet eine Reihe von Artikeln oder Zahlen an, die einer Warteschlange entsprechen.

  • data_type – der verwendete Datentyp, z. B. int, float usw.

  • name_of_queue – jeder Name, der der Warteschlange gegeben wird, wie ab, cd usw.

front()

front() ist eine vordefinierte Funktion in C++ STL, die direkt auf die erste Indexposition der Warteschlange verweist.

back()

back() ist eine vordefinierte Funktion in C++ STL, die direkt auf die letzte Indexposition der Warteschlange verweist.

push_back()

push_back() ist ebenfalls eine vordefinierte Funktion zum Einfügen von Elementen von hinten.

Algorithmus

  • Wir werden die Header-Dateien 'iostream' und 'deque' verwenden, um das Programm zu starten.

  • Wir fügen eine Deque ein, um den Maximal- oder Minimalwert der Zahl zu verarbeiten.

    • "dequedq" – Dadurch können wir Eigenschaften von Stapeln und Warteschlangen aktivieren

  • Ausgehend von der for-Schleife fügen wir Elemente im Bereich 10 bis 15 ein. Dann pushen Sie die Array-Elemente mit einer for-Schleife namens 'push_back[i ]', die 'i' als Argument akzeptiert.

  • Dann erstellen wir zwei Variablen mit den vordefinierten Funktionen front() und back(), um den minimalen und maximalen Wert einer Zahl zu ermitteln. front() sucht nach dem ersten Index, der die kleinste Zahl darstellt, während back() nach dem letzten Index sucht, der die größte Zahl darstellt.

  • Jetzt initialisieren wir die for-Schleife, um über die Länge der Indexnummer zu iterieren und verwenden diese Länge, um den Vergleich des kleinsten und größten Elements als 'dq[i]' zu klassifizieren. Dadurch werden also die minimale und maximale Anzahl ermittelt.

  • Abschließend drucken wir die Ausgabe der minimalen und maximalen Länge mit Hilfe der Variablen 'min_element' und 'max_element' aus.

    李>

Beispiel

In diesem Programm lösen wir die Datenstruktur der Warteschlange, um den Minimal- und Maximalwert in O(1)-Zeit zu erhalten.

#include <iostream>
#include <deque>
using namespace std;
int main() {
deque<int> dq; 
   // double ended queue
   // insert elements into the deque using a loop
   for(int i = 10; i <= 15; i++) {
      dq.push_back(i);
   }
   // find the minimum and maximum elements
   int min_element = dq.front();
   int max_element = dq.back();

   for(int i = 1; i < dq.size(); i++) {
      if(dq[i] < min_element) {
         min_element = dq[i];
      }
      if(dq[i] > max_element) {
         max_element = dq[i];
      }
   }
   //Print the minimum and maximum elements
   cout << "Minimum element: " << min_element << endl;
   cout << "Maximum element: " << max_element << endl;
   return 0;
}

Ausgabe

Minimum element: 10
Maximum element: 15

Fazit

Wir haben das Konzept der Warteschlangendatenstruktur untersucht, um das kleinste oder größte Element zu finden. Wir haben gesehen, wie front() und back() verwendet werden können, um den minimalen und maximalen Wert eines Elements zu ermitteln, und auch, wie man Pushback am Ende eines indizierten Elements hinzufügt. Durch die Verwendung einer Deque können wir das Problem mit der Zeitkomplexität O(1) lösen.

Das obige ist der detaillierte Inhalt vonEntwerfen Sie eine Warteschlangendatenstruktur, um den minimalen oder maximalen Wert in O(1)-Zeit zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen