データ構造とアルゴリズムJavaScript記述——スタック4.4練習
2568 ワード
スタック
スタック
スタック:先入後のデータ構造
スタックの操作プッシュ方法 倉庫に入る ポップ()メソッド スタックからは、スタックトップ要素にアクセスすることができますが、同時にスタックトップ要素は完全に削除されます. peek()方法 スタックの一番上の要素だけを返します.削除しません. clear()メソッド スタック内のすべての要素をクリアする length()方法 記録スタック内の要素の個数 empty属性は、スタック内に要素 が含まれているかどうかを示すために使用される.
式の括弧がマッチするかどうかを判定します.
参考資料:データ構造入門第四章スタックとキュー
大きい人の実現のアルゴリズム:javascriptの中で4つの演算式の計算方法と例を解析します.
スタック
スタック:先入後のデータ構造
スタックの操作
function stack(){
this.database = [];
this.push = function(ele){
this.database.push(ele);
};
this.pop = function(){
return this.database.pop();
};
this.size = function(){
return this.database.length;
};
this.isEmpty = function(){
return this.database.length === 0;
};
this.clear = function(){
this.database.length = 0;
}
this.peek= function(){
return this.database[this.database.length-1];
};
}
練習します式の括弧がマッチするかどうかを判定します.
function isBanlance(exp){
var s = new stack();
var left = '{[(';
var right = '}])';
var flag = true;
var popvalue;
var match = function(prev,current){
if(left.indexOf(prev) !== right.indexOf(current)){
flag = false;
}
};
for(var i=0;i
// 1、
// : '(','{','[' , ')','}',']'
function check(exp){
var s = new stack();
var str = exp.split("");
for(var i = 0;i -1){
s.push(str);
} else if([')','}',']'].indexOf(str) > -1) {
var top = s.pop();
if((top == '(' && str == ')')||(top == '[' && str == ']')||(top == '{' && str == '}')){
continue;
} else {
return false;
}
}
}
if(s.length() > 0){
return false;
}
return true;
}
// 2、 , , , js , , 。
//
function isOperator(value){
var operatorString = "+-*/()";
return operatorString.indexOf(value) > -1
}
// 3、 ,
function candy(arr){
var results = [];
var candys = new stack();
var likes = new stack();
for(var i=0;i0){
candys.push(likes.pop());
}
while(candys.length()>0){
results.push(candys.pop());
}
return results;
}
第二の問題は資料を閲覧することによって、スタックの四則演算における応用が分かりますが、JavaScriptを通じてどうやって実現するかはまだ分かりません.参考資料:データ構造入門第四章スタックとキュー
大きい人の実現のアルゴリズム:javascriptの中で4つの演算式の計算方法と例を解析します.