Heim > Web-Frontend > js-Tutorial > Algorithmus zur Implementierung einer Warteschlange mithilfe von zwei Stapeln in js

Algorithmus zur Implementierung einer Warteschlange mithilfe von zwei Stapeln in js

不言
Freigeben: 2018-07-21 10:59:51
Original
1813 Leute haben es durchsucht

Dieser Artikel teilt Ihnen den Algorithmus zur Verwendung von zwei Stapeln zur Implementierung von Warteschlangen in js mit. Der Inhalt ist sehr gut. Ich hoffe, er kann allen helfen.

Problembeschreibung

Verwenden Sie zwei Stapel, um eine Warteschlange zu implementieren und die Push- und Pop-Vorgänge der Warteschlange abzuschließen. Die Elemente in der Warteschlange sind vom Typ int.

Analyse

Zwei Stapel implementieren Warteschlangen, das heißt, einer rein und einer raus, und in der Frage wird die Längenbeschränkung der beiden Stapel nicht erwähnt zwei Stapel s1 Für s2 sind zwei Punkte zu beachten:

  • Wenn s1.push, wenn s2 nicht leer und s1 leer ist, um die richtige Reihenfolge sicherzustellen , Alle Elemente von s2 werden an s1 zurückgegeben und dann an s1.push

  • s2.pop Wenn s2 leer ist und s1 nicht leer ist, wird die Elemente von s1 werden alle Elemente in s2 einfügen und dann s2.pop

Code-Implementierung

var s1 = [], s2 = [];
function transferStack(a, b) {
    while(a.length !== 0){
        b.push(a.pop());
    }
}
function push(val) {
    if(s1.length === 0 && s2.length !== 0){
        transferStack(s2, s1);
    }

    s1.push(val);
}

function pop(){
    if(s1.length !== 0 && s2.length === 0){
        transferStack(s1, s2);
    }

    return s2.pop();
}
Nach dem Login kopieren

Verwandte Empfehlungen:

So verwenden Sie die Funktion $() in jQuery

Das obige ist der detaillierte Inhalt vonAlgorithmus zur Implementierung einer Warteschlange mithilfe von zwei Stapeln in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage