function stack()
function push(element)
function pop()
function peek()
function length()
function clear()
function isempty()else
}//測試stack類的實現
let s=new stack();
s.push("tom");
s.push("jack");
s.push("bryan");
console.log("length: " + s.length());//3
console.log(s.peek());//bryan
let popped = s.pop();
console.log("the popped element is: " + popped);//bryan
console.log(s.peek());//jack
s.push("cynthia");
console.log(s.peek());//cynthia
s.clear();
console.log("length: " + s.length());//0
console.log(s.peek());//undefined
s.push("clayton");
console.log(s.peek());//clayton
1.數制間的相互轉換:假設想將數字n轉換為以b為基數的數字,實現轉換的演算法如下
(1) 最高位為 n % b,將此位壓入棧
(2) 使用 n/b代替n
(3) 重複步驟1 和 2,直到 n 等於 0,且沒有餘數。
(4) 持續將棧內元素彈出,直到棧為空,依次將這些元素排列,就得到轉換後數字的字串形式
function mulbase(num,base)while(num>0);
let converted="";
while(s.length()>0)
return converted;
}let num=31;
let base=2;
let newnum=mulbase(num,base);
console.log(num+" converted to base "+base+" is "+newnum);//11111
num =125;
base=8;
newnum=mulbase(num,base);
console.log(num+" converted to base "+base+" is "+newnum);//175
2.判斷給定字串是否是回文
function ispalindrome(word)
if(word==rword)else
}let word="hello";
if(ispalindrome(word))else
word='racecar';
if(ispalindrome(word))else
3.遞迴
function factorial(n)else
}function fact(n)
let product=1;
while(s.length()>0)
return product;
}console.log(factorial(6));//720
console.log(fact(6));//720
1.棧可以用來判斷乙個算術表示式中的括號是否匹配。編寫乙個函式,該函式接受乙個算術表示式作為引數,返回括號缺失的位置。下面是乙個括號不匹配的算術表示式的例子:2.3 + 23 / 12 + (3.14159×0.24。function signup(stack,ele)":
case "]":
case ")":
let topele=stack.pop();
console.log(stack.top);
if((topele=='')||(topele=='['&& ele==']')||(topele=='('&& ele==')'))else
break;
} }let stack=new stack();
let str="2.3 + 23 / 12 + ( 3.14159 × 0.24 ";
str=str.split(" ");
for(let i=0;i
第四章棧(3)
3.現實生活中棧的乙個例子是佩茲糖果盒。想象一下你有一盒佩茲糖果,裡面塞滿了紅色 黃色和白色的糖果,但是你不喜歡黃色的糖果。使用棧 有可能用到多個棧 寫一段程式,在不改變盒內其他糖果疊放順序的基礎上,將黃色糖果移出。let candybox new stack candybox.push red c...
第四章 棧與佇列
adt abstract data type 棧 stack data 同線性表,元素具有相同的型別,相鄰元素具有前驅和後繼關係。operation initstack s 初始化操作,建立乙個空棧s。destroy s 若棧存在,則銷毀它 clearstack s 將棧清空 stackempty ...
第四章 WCF繫結 1
size large color red 原文 url size x large color orange 繫結和通道棧 color size 在wcf中,所有的通訊細節都是通過通道來處理的,它是通道元件組成的棧,所有的訊息都會在執行時傳輸。最底層的元件是傳輸通道。它實現了乙個給定的傳輸協議,並且從...