ホームページ > 記事 > ウェブフロントエンド > チェーンスタックを実装するjsのコード例
この記事では、チェーンスタックの JS 実装に関するコード例を紹介します。必要な方は参考にしていただければ幸いです。
公式定義: チェーン スタックは、単一のリンク リストを通じて実装できるデータ ストレージ構造です。チェーン スタックを使用する利点は、配列で実装されたシーケンシャル スタックのスペース使用率の低さを克服できることですが、それには次のことが必要です。ポインター フィールドを格納するために、各スタック要素に追加のポインター領域を割り当てます。现实 具体的な実装
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> function LinkStack(){ this.length = 0; this.top = null;//栈顶指针 }; LinkStack.prototype.Node = function(el){ this.element = el; this.next = null; }; //压栈 LinkStack.prototype.push = function(el){ var current, Node = this.Node, node = new Node(el); if(!this.top){ this.top = node; this.length++; return true; }else{ current = this.top; node.next = current; this.top = node; this.length++; return true; } }; //退栈 LinkStack.prototype.pop = function(){ var current = this.top; if(current){ this.top = current.next; current.next = null; this.length--; return current; }else{ throw "error null stack" } }; LinkStack.prototype.toString = function(){ var str = "", current = this.top; while(current){ str += current.element + " "; current = current.next; } return str; }; //清空栈 LinkStack.prototype.clear = function(){ this.top = null; this.length = 0; return true; }; /***************测试代码******************/ function test(){ var linkStack = new LinkStack(); //压栈 for(var i=1;i<21;i++){ linkStack.push(i); } console.log("压栈->" + linkStack.toString()); //退栈 linkStack.pop(); linkStack.pop(); linkStack.pop(); console.log("退栈->" + linkStack.toString()); //清空栈 linkStack.clear(); console.log("清空栈->" + linkStack.toString()); } test(); </script> </head> <body> </body> </html>関連する推奨事項:
JS のコードを圧縮するにはどうすればよいですか? jsコードを圧縮する簡単な方法
Nodejsのバッファとは何ですか? Nodejsでのバッファクラスの使用法
以上がチェーンスタックを実装するjsのコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。