成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

前言與鏈表實現(xiàn)數(shù)組

ingood / 1461人閱讀

摘要:數(shù)據結構可以分為列表線性樹形圖四種基本結構。即承載數(shù)據的形式。數(shù)據結構中的線性結構有數(shù)組和鏈表,本文即對鏈表進行簡單總結,在后續(xù)文章中會實現(xiàn)幾種基本的數(shù)據結構。

緣起

最近工作上需要依照現(xiàn)有數(shù)據生成嵌套json對象形式的組織機構列表,一時覺得無從下手,請教同事大神才知道此乃數(shù)據結構相關知識,遂惡補相關基礎并在此記錄。

數(shù)據結構可以分為:1、列表;2、線性;3、樹形;4、圖 四種基本結構。何為數(shù)據結構?我理解就是數(shù)據的結構。。。即承載數(shù)據的形式。數(shù)據結構中的線性結構有數(shù)組和鏈表,本文即對鏈表進行簡單總結,在后續(xù)文章中會實現(xiàn)幾種基本的數(shù)據結構。

鏈表
1 鏈表是什么

鏈表相關概念

2 用鏈表實現(xiàn)數(shù)組和其基本操作,以下附上代碼
function ARRAY(){
  var INDEX=-1;
  var HEAD=null;
  var OBJ=null;
  //添加元素
  this.add=function(e){
    function Element(value){
      this.value=value;
    }
    e=new Element(e);
    if(INDEX==-1){
      OBJ=e;
      HEAD=e;
      INDEX++;
    }else{
      INDEX++;
      OBJ.next=e;
      OBJ=OBJ.next;
    }
    return HEAD;
  }
  //刪除最后一個元素
  this.deleteLast=function(){
    for(var i=HEAD;i!=undefined;i=i.next){
      if(i.next.next==undefined){
        i.next=null;
      }
    }
    return HEAD;
  }
  //按序號取元素
  this.get=function(Inx){
    var index=0;
    for(var i=HEAD;i!=undefined;i=i.next){
      index++;
      if(index==Inx){
        return i;
      }
    }
  }
  //按位置插入元素
  this.insert=function(Inx,e){
    function Element(value){
      this.value=value;
    }
    e=new Element(e);
    if(Inx==0){
      e.next=HEAD;
      HEAD=e;
    }else{
      var currentItem=this.get(Inx);
      var sufItem=this.get(Inx+1);
      e.next=sufItem;
      currentItem.next=e;
    }
    return HEAD;
  }
  //刪除特定位置元素
  this.deleteElement=function(Inx){
    if(Inx==0){
      var sufItem=this.get(Inx+1);
      HEAD=sufItem;
    }else{
      var preItem=this.get(Inx-1);
      var sufItem=this.get(Inx+1);
      preItem.next=sufItem;
      }
    return HEAD;
  }
}

同時提供兩種遍歷鏈表的方法

//遍歷鏈表(遞歸)
function loop(head){
  if(head.next==undefined){
    return;
  }
  return loop(head.next);
}
//遍歷鏈表(非遞歸)
function loopLinkedList(head){
  for(var i=head;i!=undefined;i=i.next){
    console.log(i);
  }
}

具體使用方法

var obj = new ARRAY();
console.time("addtest");
obj.add("aaa");
obj.add("bbb");
obj.add("ccc");
obj.add("ffffd");
var head=obj.add("eee");
console.log(head);
console.timeEnd("addtest");

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/81380.html

相關文章

  • 線性結構 數(shù)組鏈表

    摘要:線性結構數(shù)組與鏈表線性結構線性數(shù)據結構有兩端,有時被稱為左右,某些情況被稱為前后。將兩個線性數(shù)據結構區(qū)分開的方法是添加和移除項的方式,特別是添加和移除項的位置。相對于數(shù)組,鏈表的好處在于,添加或移除元素的時候不需要移動其他元素。 線性結構 數(shù)組與鏈表 線性結構 線性數(shù)據結構有兩端,有時被稱為左右,某些情況被稱為前后。你也可以稱為頂部和底部,名字都不重要。將兩個線性數(shù)據結構區(qū)分開的方法...

    xi4oh4o 評論0 收藏0
  • 線性結構 數(shù)組鏈表

    摘要:線性結構數(shù)組與鏈表線性結構線性數(shù)據結構有兩端,有時被稱為左右,某些情況被稱為前后。將兩個線性數(shù)據結構區(qū)分開的方法是添加和移除項的方式,特別是添加和移除項的位置。相對于數(shù)組,鏈表的好處在于,添加或移除元素的時候不需要移動其他元素。 線性結構 數(shù)組與鏈表 線性結構 線性數(shù)據結構有兩端,有時被稱為左右,某些情況被稱為前后。你也可以稱為頂部和底部,名字都不重要。將兩個線性數(shù)據結構區(qū)分開的方法...

    edagarli 評論0 收藏0
  • 【從蛋殼到滿天飛】JAVA 數(shù)據結構解析和算法實現(xiàn)-鏈表與遞歸

    摘要:鏈表與遞歸已經從底層完整實現(xiàn)了一個單鏈表這樣的數(shù)據結構,并且也依托鏈表這樣的數(shù)據結構實現(xiàn)了棧和隊列,在實現(xiàn)隊列的時候對鏈表進行了一些改進。計算這個區(qū)間內的所有數(shù)字之和。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言 【從蛋殼到滿天飛】JAVA 數(shù)據結構解析和算法實現(xiàn),全部文...

    lastSeries 評論0 收藏0
  • 【從蛋殼到滿天飛】JAVA 數(shù)據結構解析和算法實現(xiàn)-鏈表與遞歸

    摘要:鏈表與遞歸已經從底層完整實現(xiàn)了一個單鏈表這樣的數(shù)據結構,并且也依托鏈表這樣的數(shù)據結構實現(xiàn)了棧和隊列,在實現(xiàn)隊列的時候對鏈表進行了一些改進。計算這個區(qū)間內的所有數(shù)字之和。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言 【從蛋殼到滿天飛】JAVA 數(shù)據結構解析和算法實現(xiàn),全部文...

    alanoddsoff 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<