Dieses Mal bringe ich Ihnen die Prioritäts-Warteschlange und die zyklische -Warteschlange zum Parsen von JS. Was sind die Vorsichtsmaßnahmen für das Parsen der JS-Prioritätswarteschlange und der zirkulären Warteschlange? wie folgt Dies ist ein praktischer Fall, schauen wir ihn uns an.
Prioritätswarteschlange
Implementieren Sie eine Prioritätswarteschlange: Legen Sie die -Priorität fest und fügen Sie dann das Element an der richtigen Position hinzu.
Was wir hier implementieren, ist eine Warteschlange mit minimaler Priorität, und Elemente mit kleinen Prioritätswerten (hohe Priorität) werden an den Anfang der Warteschlange gestellt.
//创建一个类来表示优先队列 function Priorityqueue(){ var items=[];//保存队列里的元素 function QueueEle(e,p){//元素节点,有两个属性 this.element=e;//值 this.priority=p;//优先级 } this.enqueue=function(e,p){//添加一个元素到队列尾部 var queueEle=new QueueEle(e,p); var added=false; //priority小的优先级高,优先级高的在队头 if(this.isEmpty()){ items.push(queueEle); }else{ for(var i=0;i<items.length>queueEle.priority){ items.splice(i,0,queueEle); added=true; break; } } if(!added){ items.push(queueEle); } } } this.isEmpty=function(){ return items.length==0; } this.dequeue=function(){ return items.shift(); } this.clear=function(){ items=[]; } this.print=function(){ console.log(items); } this.mylength=function(){ return items.length; } } var pqueue=new Priorityqueue(); pqueue.enqueue('a',2); pqueue.enqueue('b',1); pqueue.enqueue('c',2); pqueue.enqueue('d',2); pqueue.enqueue('e',1); pqueue.print(); //[ QueueEle { element: 'b', priority: 1 }, // QueueEle { element: 'e', priority: 1 }, // QueueEle { element: 'a', priority: 2 }, // QueueEle { element: 'c', priority: 2 }, // QueueEle { element: 'd', priority: 2 } ]</items.length>
Laufergebnisse:
Elemente an der richtigen Position hinzufügen: Wenn die Warteschlange leer ist, können Sie das Element direkt in die Warteschlange einreihen. Andernfalls müssen Sie die Priorität dieses Elements mit anderen Elementen vergleichen. Wenn ein Element mit einer niedrigeren Priorität als das hinzuzufügende Element gefunden wird, wird das neue Element davor eingefügt. Auf diese Weise folgen wir für andere Elemente mit derselben Priorität, die jedoch zuerst zur Warteschlange hinzugefügt werden, ebenfalls dem ersten Element. First-Out-Prinzip.
Warteschlange mit maximaler Priorität: Elemente mit größeren Prioritätswerten werden an den Anfang der Warteschlange gestellt.
Zirkuläre Warteschlange
Verwirklichen Sie das Trommel- und Blumenspiel.
//创建一个类来表示队列 function Queue(){ var items=[];//保存队列里的元素 this.enqueue=function(e){//添加一个元素到队列尾部 items.push(e); } this.dequeue=function(){//移除队列的第一项,并返回 return items.shift(); } this.front=function(){//返回队列的第一项 return items[0]; } this.isEmpty=function(){//如果队列中部包含任何元素,返回true,否则返回false return items.length==0; } this.mylength=function(){//返回队列包含的元素个数 return items.length; } this.clear=function(){//清除队列中的元素 items=[]; } this.print=function(){//打印队列中的元素 console.log(items); } } //击鼓传花 function hotPotato(namelist,num){ var queue=new Queue(); for(var i=0;i<namelist.length>1){ for(i=0;i<num var console.log><p style="text-align: left;"> Holen Sie sich eine Liste und fügen Sie alle Namen zur Warteschlange hinzu. Bei gegebener Zahl wird die Warteschlange iteriert. Entfernen Sie ein Element vom Kopf der Warteschlange und fügen Sie es am Ende der Warteschlange hinzu, um eine kreisförmige Warteschlange zu simulieren. Sobald die Anzahl der Durchgänge eine bestimmte Anzahl erreicht, scheidet die Person aus, die die Blume erhalten hat. Wenn am Ende nur noch einer übrig ist, ist er der Gewinner. </p> <p>Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website! </p> <p>Empfohlene Lektüre: </p> <p><a href="http://www.php.cn/js-tutorial-392833.html" target="_blank">Detaillierte Erläuterung der Verwendung der Texteditorkomponente Summernote von BootStrap</a><br></p> <p><a href="http://www.php.cn/js-tutorial-392831.html" target="_blank">Operationssuchkomponente zur Anzeige auf die Tastatur</a><br></p> <!--content end--></num></namelist.length>
Das obige ist der detaillierte Inhalt vonAnalysieren der Prioritätswarteschlange und der Umlaufwarteschlange von JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!