: (スタック) スタックとも呼ばれ、限られた操作を備えた線形テーブルです。後入れ先出し (LIFO)
スタックの最上部: 挿入および削除操作をテーブルの末尾のみに制限する線形リスト、および
スタックの最下部: 挿入および削除操作を制限する線形リスト
に従います。頭だけに。
プッシュ : 新しい要素をスタックに挿入することは、プッシュ、プッシュ、またはプッシュとも呼ばれます。これは、
新しい要素をスタックの最上位要素に置き、それをスタックの新しい最上位要素にすることです。
stack 要素は、スタックの最上位要素を削除し、その隣接する要素をスタックの新しい最上位要素にします。スタック要素のポップまたはスタックからのポップとも呼ばれます。
:
プロセス指向とは、問題を解決するための手順を分析し、
関数を使用して
それらを段階的に実行して呼び出すだけです。
- Push (element ) スタックの先頭に 1 つ以上の要素を追加します
- Pop ()先頭の要素を削除し、削除された要素を返します
- Peak ()スタックの先頭の要素を返します
- isEmpty ()はスタックが空であるかどうかを判断するために使用されます。clear
- ()はスタックの要素をクリアするために使用されます。size
- ()はスタック内の要素の数を返すために使用されます。
実装する前に考えてみましょう。実装方法
まず、配列メソッドを借用して実装するため、
スタックをシミュレートするために空の配列
を作成する必要があります。クラスを構築し、配列を使用してそれをシミュレートし、
クラス内にさまざまなメソッドを記述して
配列メソッドを部分的に呼び出します。
一般に、クラスを使用して配列をラップする方法は
、スタック
クラス Stack {のシミュレーションを実現します。
コンストラクター() { this.item = [] } プッシュ(要素) { this.item.push(要素) } ポップ() { this.item.pop() を返す } ピーク() { this.item[this.item.length - 1]を返します } isEmpty() { this.item.length === 0 を返す } クリア() { this.item = [] サイズ() { this.item.length を返す } } //Stack クラスをインスタンス化する const stack = new Stack() スタック.プッシュ(4) スタック.プッシュ(6) console.log( stack.pop()) console.log(stack.peek()) console.log(stack.isEmpty()) Console.log(stack.size()) の
結果:
3.1
オブジェクト
指向
について
次に、この
- Push (element ) スタックの先頭に 1 つ以上の要素を追加します
- Pop ()先頭の要素を削除し、削除された要素を返します
- Peak ()スタックの先頭の要素を返します
- isEmpty ()はスタックが空であるかどうかを判断するために使用され、空は
- 空
- です
- 。
- クラス
を実装するときに、オブジェクトをシミュレーションスタックに使用します。
class Stack { コンストラクター() { this.count=0 this.items = {} } プッシュ(要素) { this.items[this.count]=要素 this.count++ } ポップ() { if(this.isEmpty()){ 未定義を返す } this.count-- const result=this.items[this.count] this.items[this.count] を削除します 結果を返す } ピーク() { if(this.isEmpty()){ 未定義を返す } this.items[this.count-1] を返す } isEmpty() { これを返す.count===0 } クリア() { this.items={} this.count=0 } サイズ() { this.count を返す } toString(){ if(this.isEmpty()){ 未定義を返す } let objectString=`${this.items[0]}` for(let i=1;i<this.count;i++){ objectString=`${objectString},${this.items[i]}` } オブジェクト文字列を返す } } const stack = new Stack() スタックプッシュ(23) スタック.プッシュ(34) スタック.プッシュ(80) console.log( stack.pop()) console.log(stack.peek()) console.log(stack.isEmpty()) console.log(stack.size()) console.log(stack.toString()) が
オブジェクトを使用してスタックをシミュレートする場合、key:value を使用して
データを保存します。たとえば、this.items[this.count]=element は
this.count を使用してこの構造体に記録します。スタックのサイズ
に数値を挿入するときは、count をキーとして割り当て
、値を値として挿入します。このとき、this.count++を変更する必要があります。pop
()とpeek()に関しては、最初にtoString()メソッドで
スタックが空であるかどうかを判断する必要があります。空の場合は未定義を返します。