zoukankan      html  css  js  c++  java
  • JavaScript数据结构-4.栈操作

      

      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4         <meta charset="UTF-8">
      5         <title></title>
      6     </head>
      7     <body>
      8         <script>
      9             function Stack(){
     10                 this.arr = [];
     11                 this.top = 0;
     12                 this.push = push;
     13                 this.pop = pop;
     14                 this.peek = peek;
     15                 this.length = length;
     16                 this.clear = clear;
     17             }
     18             function push(ele){
     19                 this.arr[this.top++] = ele;
     20             }
     21             
     22             function pop(){
     23                 var value = this.arr[this.top-1];
     24                 this.arr.pop();
     25                 this.top--;
     26                 return value;
     27             }
     28             
     29             function peek(){
     30                 return this.arr[this.top-1];
     31             }
     32             function length(){
     33                 return this.top;
     34             }
     35             function clear(){
     36                 this.top = 0;
     37                 this.arr = [];
     38             }
     39             
     40             
     41             
     42             
     43             
     44             var s = new Stack();
     45             s.push("zhangsan");
     46             s.push("lisi");
     47             s.push("wangwu");
     48             s.push("zhaoliu");
     49             
     50             console.log(s.length());
     51             console.log(s.pop());
     52             console.log(s.arr);
     53             console.log(s.peek());
     54             console.log(s.arr);
     55             s.clear();
     56             console.log(s.arr);
     57             
     58             
     59             // 应用  将数字转换为二到九进制: 无法转换16进制
     60             function mulBase(num,base){
     61                 var s = new Stack();
     62                 do{
     63                     s.push(num%base);
     64                     num = Math.floor(num /= base);
     65                 }while (num>0);
     66                 
     67                 var converted = '';
     68                 while(s.length() > 0 ){
     69                     converted += s.pop();
     70                 }
     71                 return converted;
     72             }
     73             
     74             console.log(mulBase(11,3));
     75             
     76             
     77             //判断字符串回文
     78             function isPalindrome(word){
     79                 var s = new Stack();
     80                 for(var i=0;i<word.length;i++){
     81                     s.push(word[i]);
     82                 }
     83                 var rword ='';
     84                 while(s.length()>0){
     85                     rword += s.pop();
     86                 }
     87                 return word == rword;    
     88             }
     89             
     90             console.log(isPalindrome("hello"));
     91             console.log(isPalindrome("elle"));
     92             
     93             
     94             //使用栈模拟递归
     95             function fact(n){
     96                 var s = new Stack();
     97                 while(n>1){
     98                     s.push(n--);
     99                 }
    100                 var product = 1;
    101                 while(s.length() >0 ){
    102                     product *=s.pop();
    103                 }
    104                 return product;
    105             }
    106             
    107             console.log(fact(5));
    108         </script>
    109     </body>
    110 </html>
  • 相关阅读:
    国际组织
    波段
    hhgis驱动
    百度地图格式
    气象数据格式
    汽车用传感器
    无线传感器网络
    【系统软件工程师面试】7. 消息队列
    【ToDo】存储设计概述
    Arthas: Java 动态追踪技术
  • 原文地址:https://www.cnblogs.com/chengyunshen/p/7191872.html
Copyright © 2011-2022 走看看