この記事の例では、両端キューを実装するための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を使用してダークモードとブライトモードを切り替える
ソフトウェアのグリーンバージョンとインストールバージョンの違いは何ですか?通常、ファイルのインストー...
border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...
1. 組み込みソフトウェアレベル 1) ブートローダ -> ブートローダ組み込みシステム全体の...
1: 文字列を区切るためのストアドプロシージャを定義する 区切り文字 $$ `mess`$$ を使う...
はじめに以前は、Docker イメージは Azure のコンテナー レジストリに保存されていました。...
この記事は、参考のためにMySQL 8.0.16のインストールグラフィックチュートリアルを記録してい...
作成されたタブラベルがページの表示領域を超えると、タブラベルの距離だけ自動的にスクロールされます。ま...
<br />多くの中小企業ではこの問題は発生しません。中小企業はデザイナーをサポートし、...
最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...
脆弱性の紹介SigRed の脆弱性はワーム化可能であるため非常に危険です。つまり、ユーザーの介入なし...
目次序文1. シングルユーザーモードでの一般的なバグ修正2. シングルユーザーモードでシステムパスワ...
CentOS6.7にmysql5.7.18をインストールする 1. /usr/localディレクトリ...
VMware で仮想マシンを作成し、Redhat Linux オペレーティング システムをインスト...
目次1. SELinux の紹介2. SELinuxの基本概念2.1 仕事の種類2.2. セキュリテ...
FileReader は、フロントエンドのファイル処理、特に画像処理にとって重要な API です。画...