<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      javascript中的雙向隊(duì)列

      1.概念

         我們知道隊(duì)列是一種先進(jìn)先出的結(jié)構(gòu),只能在隊(duì)伍的開頭添加元素,隊(duì)伍的結(jié)尾刪除元素。雙向隊(duì)列的概念就是同時允許在隊(duì)伍的開頭和結(jié)尾添加和刪除元素。在javascript中有一個處理數(shù)組的方法Array.splice(index, length, array)方法,這個方法先從數(shù)組中刪除幾個元素,再加上幾個元素。這個方法的第一個參數(shù)是要從那里開始刪除元素,第二個參數(shù)標(biāo)識要刪除多少個元素,第三個參數(shù)是要從index后面要添加進(jìn)來的數(shù)組。使用splice方法可以很方便的實(shí)現(xiàn)在數(shù)組的任何位置添加,刪除元素。在隊(duì)伍開頭添加元素就是從第0個元素開始刪除0個元素,然后添加新的數(shù)組元素進(jìn)去就好了,這是不是很簡單呢。

        下面我們看看雙向隊(duì)列的代碼實(shí)現(xiàn): 

      /*--------------雙向Queue類的定義和測試代碼----------------*/
      function Queue(){
              this.dataStore = [];
              this.enqueueFront = enqueueFront;
              this.enqueueBack = enqueueBack;
              this.dequeueFront = dequeueFront;
              this.dequeueBack = dequeueBack;
              this.front = front;
              this.back = back;
              this.toString = toString;
              this.empty = empty;
      }
      
      //尾部入隊(duì),就是在數(shù)組的末尾添加一個元素
      function enqueueBack(element){
          this.dataStore.push(element);
      }
      
      //頭部入隊(duì),就是在數(shù)組的頭部添加一個元素
      function enqueueFront(element){
          this.dataStore.splice(0,0,element);
      }
      
      //尾部出隊(duì),就是刪除數(shù)組的最后一個元素
      function dequeueBack(){
          return this.dataStore.splice(this.dataStore.length-1, 1);
      }
      
      //出隊(duì),就是刪除數(shù)組的第一個元素
      function dequeueFront(){
          return this.dataStore.shift();
      }
      
      //取出數(shù)組的第一個元素
      function front(){
          return this.dataStore[0];
      }
      //取出數(shù)組的最后一個元素
      function back(){
          return this.dataStore[this.dataStore.length-1];
      }
      
      function toString(){
          var retStr = "";
          for (var i=0; i<this.dataStore.length; ++i) {
              retStr += this.dataStore[i] + "&nbsp;"
          }
          return retStr;
      }
      //判斷數(shù)組是否為空
      function empty(){
          if(this.dataStore.length == 0){
              return true;
          }else{
              return false;
          }    
      }
      //返回數(shù)組中元素的個數(shù)
      function count(){
          return this.dataStore.length;
      }
      
      var q = new Queue();
      q.enqueueFront("1");
      q.enqueueFront("2");
      q.enqueueBack("3");
      q.enqueueBack("4");
      document.write(q.toString());
      document.write('<br>');
      
      q.dequeueFront();
      document.write(q.toString());
      document.write('<br>');
      
      q.dequeueBack();
      document.write(q.toString());
      document.write('<br>');
      document.write('<br>');

      輸出結(jié)果

        

      2.判斷回文

         雙向隊(duì)列可以從隊(duì)伍的開頭刪除和添加元素,用這個特性來反轉(zhuǎn)字符串是方便的,入隊(duì)之后只要依次從對頭獲取元素就可以獲取一個反轉(zhuǎn)的字符串。這樣的話我們可以很簡單判斷一個字符串是否是回文字符串,下面的代碼就是使用雙向隊(duì)列判斷字符串是否是回文。

      /*---------------------------判斷字符串是否是回文-------------------------*/
      function isPalindrome(str){
          var queue = new Queue();
          for (var i=0; i<str.length; i++) {
              queue.enqueueFront(str[i]);
          }
          
          var newStr = "";
          while (!queue.empty()){
              newStr += queue.dequeueFront();
          }
          
          document.write(newStr);
          document.write('<br>');
          if(str == newStr){
              document.writeln(str + " 是回文");
          }else{
              document.writeln(str + " 不是回文");
          }
      }
      
      isPalindrome("racecar");
      document.write('<br>');
      isPalindrome("helloword");

      輸出結(jié)果:

       

      posted @ 2016-09-06 23:33  nd  閱讀(1975)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻va精品va欧美va| 国产超碰人人做人人爰| av中文字幕一区二区| 国产日韩精品欧美一区喷水| 亚洲黄色片一区二区三区| 免费人成网站免费看视频| 国产乱子伦无套一区二区三区 | 99网友自拍视频在线| 久久亚洲精品11p| 少妇熟女视频一区二区三区| 精品人妻中文无码av在线| 国产四虎永久免费观看| 国产精品一区二区 尿失禁| 99国产精品白浆无码流出| 国产精品日日摸夜夜添夜夜添无码| 从江县| 激情国产一区二区三区四区| 亚洲国产良家在线观看| 孟津县| 中文字幕无码不卡在线| 亚洲成av人片在www色猫咪| 国产午夜福利在线视频| 国产午夜精品福利免费看| 久青草久青草视频在线观看| 国产a在视频线精品视频下载| 91老肥熟女九色老女人| 亚洲大尺度无码无码专线| 日韩不卡在线观看视频不卡| 亚洲中文字幕综合网在线| 久久精品国产免费观看频道| 在线观看精品日本一区二| 国产av一区二区不卡| 柠檬福利第一导航在线| 亚洲一区二区三区四区| 九九日本黄色精品视频| 另类 专区 欧美 制服| 国产人妻熟女呻吟在线观看| 欧美性大战xxxxx久久久| 玩弄放荡人妻少妇系列| 亚洲国产一区二区在线| gogogo高清在线播放免费|