JSアルゴリズムの実践 - チーム

 // 一般的なキュー
        クラス{キュー・
            コンストラクタ(){ 
                この .LIST = []; 
            } 

            // エンキュー
            ENQUEUE(項目){
                 この.list.push(項目); 
            } 
            // デキュー
            デキュー(){
                 戻り 、この.LISTを.shift(); 
            } 
            // 最初の要素値
            getFrontが(){
                 戻り 、この .LIST [0 ]; 
            } 
            // 長さ
            のgetSize()を{
                 戻り これを .list.lengthと、
            }
            //は空である
            GetIsEmpty(){
                 戻り 、この .list.lengthの== 0 ; 
            } 
            // クリア
            クリア(){
                 この .LIST = ; [] 
            } 
            // 読み取り素子
            を読む(){ 
                にconsole.log(これを。 list.toString()); 
            } 
        } 

        QueueTestはせ = 新しい新)は、キュー(; 
        queueTest.GetIsEmpty(); // trueに 
        。queueTest.EnQueue(1 ); 
        queueTest.EnQueue( 2 )。 
        queueTest.EnQueue( 3 ;)
        queueTest.Read(); // 1,2,3 
        queueTest.Dequeue(); // 1 
        queueTest.Read(); // 2,3 

        // プライオリティキュー:1:高齢者そして妊娠中の女性(または子供を持つ女性)優先搭乗時にも他の乗客の上に楽しむ; 
        // 医師が患者でより深刻な病気を優先させて頂きます
        PriorityQueueクラス{ 
            コンストラクタ(){ 
                この .LIST = []; 
            } 

            // エンキュー
            エンキュー(項目、優先){
                 VARの F = {アイテム:商品、指数:優先};
                 IFこの .list.length == 0この.list.push(F)。
                {
                     VARの位置= この .list.findIndex(X => x.index> f.index)。
                    もし(位置== -1 この.list.push(F)。
                    そうでなければ
                        この .list.splice(位置、0 、F)。
                } 
            } 
            // 出队
            デキュー(){
                 戻り 、この)(.list.shiftします。
            } 
            // 第一个元素值
            GetFront(){
                戻り この .LIST [0 ]; 
            } 
            // 長さ
            のgetSize(){
                 戻り 、この.list.lengthを; 
            } 
            //は空である
            GetIsEmpty(){
                 戻り 、この .list.lengthの== 0 ; 
            } 
            // クリア
            クリア() {
                 この .LIST = []; 
            } 
            // 読み取り要素
            リード(){ 
                にconsole.log(この.LIST); 
            } 
        } 
        VAR優先度つきキュー= 新しい優先度つきキュー(); 
        priorityQueue.GetIsEmpty(); // 真; 
        priorityQueue.EnQueue(1、1 )。
        priorityQueue.EnQueue( 2、2 ); 
        priorityQueue.EnQueue( 22、3 )。
        priorityQueue.EnQueue( 22、5 )。
        priorityQueue.Read(); // [{アイテム:1、インデックス:1}、{アイテム:2、インデックス:2}、{アイテム:22、インデックス:3}、{アイテム:22、インデックス:5}] 
        priorityQueue.EnQueue(33、4 ); 
        priorityQueue.Read(); // [{アイテム:1、インデックス:1}、{アイテム:2、インデックス:2}、{アイテム:22、インデックス:3}、{アイテム:22、インデックス:4}、{アイテム:22、インデックス: 5}]
        ; priorityQueue.Dequeue()// {アイテム:. 1、インデックス:. 1} 
        // サイクルキュー
        // バット円として想像ベクトル空間:「false」にあふれる方法を克服するために、ベクトル空間を最大限に活用しますリング、およびこのようなベクターのような環状ベクターを言います。
        LoopQueue {キュークラスの拡張

            コンストラクタ(項目){ 
                スーパー(項目)
            } 

            getIndex(インデックス){ 
                constの長さ = この.list.lengthの
                 リターン・インデックス>長さ(?%インデックスの長さ):インデックス
            } 

            検索(インデックス){ 
                返すこれを。 ?のisEmpty この .LIST [ この .getIndex(インデックス)]:ヌル
            } 
        } 
        VARの loopQueue = 新しいLoopQueue()。
        loopQueue.EnQueue( 1 )。
        loopQueue.EnQueue( 2 )。
        loopQueue.EnQueue( 3 )。
        loopQueue.Read(); // 1,2,3 
        loopQueue.find(7)。// 2

 

おすすめ

転載: www.cnblogs.com/shuajing/p/11319041.html