この記事の例では、両端キューを実装するためのJavaScriptの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。 1. 両端キューdeque は、フロントエンドとバックエンドの両方から同時に要素を追加および削除できる特別なキューです。 2. 両端キューの応用チケットを買ったばかりの人が簡単な情報を聞きたいときは、列の先頭に戻ることができます。列の最後尾の人が急いでいる場合は、列を離れることができます。 3. 両端キュー方式addFront(element): このメソッドは、両端キューの先頭に新しい要素を追加します。 4. 実装クラスDeque{ コンストラクタ(){ this.items = {}; カウント = 0; this.lowestCount = 0; } // 両端キューの先頭に新しい要素を追加します。addFront(element){ if(this.isEmpty()){ this.addBack(要素); } そうでない場合(this.lowestCount > 0){ this.lowestCount --; this.items[this.lowestCount] = 要素; } それ以外{ for(let i=this.count;i>0;i--){ this.items[i] = this.items[i-1]; } this.lowestCount = 0; this.items[this.lowestCount] = 要素; this.count++; } }; addBack(要素){ this.count++; this.items[this.count-1] = 要素; }; 前面を削除します(){ if(this.isEmpty()){ 未定義を返します。 } 定数結果 = this.items[this.lowestCount]; this.items[this.lowestCount]を削除します。 this.lowestCount++; 結果を返します。 }; 削除(){ if(this.isEmpty()){ 未定義を返します。 } 定数結果 = this.items[this.count-1]; this.items[this.count-1]を削除します。 this.count--; 結果を返します。 }; ピークフロント(){ if(this.isEmpty()){ null を返します。 } this.items[this.lowestCount]を返します。 }; ピークバック(){ if(this.isEmpty()){ null を返します。 } this.items[this.count-1]を返します。 }; 空です(){ this.count を返します - this.lowestCount == 0; } サイズ(){ this.count - this.lowestCount を返します。 } 文字列(){ if(this.isEmpty()){ 戻る ''; } objString = `${this.items[this.lowestCount]}` とします。 (var i=this.lowestCount+1;i<this.count;i++){ objString = `${objString},${this.items[i]}`; } objString を返します。 } クリア(){ this.items={}; カウント = 0; this.lowestCount = 0; } } const deque = 新しい Deque(); deque.addFront('John'); deque.addFront('Jack'); deque.addFront('エイミー'); deque.addBack('Lisa'); // deque.removeFront(); // deque.removeBack(); console.log(deque.size()); コンソールにログ出力します。 コンソールにログ出力します。 コンソールにログ出力します。 console.log(deque.clear()); コンソールにログ出力します。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: ウェブページを作成するために最もよく使用されるHTMLタグ
>>: CSSを使用してダークモードとブライトモードを切り替える
最初のステップはTypeScriptをグローバルにインストールすることですnpmを使用してインストー...
Mac OS X で TAR.GZ から MySQL 5.7 をインストールする MySQL 5.6...
CSS スタイル ルール構文スタイルは、CSS の基本単位です。各スタイル ルールは、セレクターと宣...
1. 概要mysql-monitor MYSQL 監視ツール、最適化ツール、1 つの Java Sp...
目次1. フィルターの概念1. グローバルフィルターのフォーマットをカスタマイズする2. フィルター...
通常の説明%はどのクライアントでも接続できることを意味しますlocalhostはローカルコンピュータ...
ネットワーク セキュリティは非常に重要なトピックであり、サーバーはネットワーク セキュリティにおける...
HTML の再利用は、あまり話題に上らない言葉です。今日は、この問題を次のようにまとめたいと思います...
素敵なフリップログインと登録インターフェースを作成する序文最近、ネットワーク ディスクを構築しようと...
概要インデックスは、テーブル内の 1 つ以上の列に基づいて DBMS によって特定の順序で作成される...
序文MySQL に精通している読者は、MySQL が非常に迅速に更新されることに気付くかもしれません...
フレックス レイアウトは間違いなくシンプルで使いやすいです。レイアウトをよりシンプルかつ高速にします...
最近、「フロントエンドキャッシュ」という新しい要件が作成されました要件背景: フォームへの高頻度の繰...
最近、プロジェクトで nginx を使用し、バックエンドで Java を使用しました。バックエンドで...
私のプロジェクトの特定の機能ではサーバーが rabbitmq にメッセージを送信する必要があるため、...