摘要:數據結構可以分為列表線性樹形圖四種基本結構。即承載數據的形式。數據結構中的線性結構有數組和鏈表,本文即對鏈表進行簡單總結,在后續文章中會實現幾種基本的數據結構。
緣起
最近工作上需要依照現有數據生成嵌套json對象形式的組織機構列表,一時覺得無從下手,請教同事大神才知道此乃數據結構相關知識,遂惡補相關基礎并在此記錄。
數據結構可以分為:1、列表;2、線性;3、樹形;4、圖 四種基本結構。何為數據結構?我理解就是數據的結構。。。即承載數據的形式。數據結構中的線性結構有數組和鏈表,本文即對鏈表進行簡單總結,在后續文章中會實現幾種基本的數據結構。
鏈表1 鏈表是什么
鏈表相關概念
2 用鏈表實現數組和其基本操作,以下附上代碼
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");
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81380.html
摘要:線性結構數組與鏈表線性結構線性數據結構有兩端,有時被稱為左右,某些情況被稱為前后。將兩個線性數據結構區分開的方法是添加和移除項的方式,特別是添加和移除項的位置。相對于數組,鏈表的好處在于,添加或移除元素的時候不需要移動其他元素。 線性結構 數組與鏈表 線性結構 線性數據結構有兩端,有時被稱為左右,某些情況被稱為前后。你也可以稱為頂部和底部,名字都不重要。將兩個線性數據結構區分開的方法...
摘要:線性結構數組與鏈表線性結構線性數據結構有兩端,有時被稱為左右,某些情況被稱為前后。將兩個線性數據結構區分開的方法是添加和移除項的方式,特別是添加和移除項的位置。相對于數組,鏈表的好處在于,添加或移除元素的時候不需要移動其他元素。 線性結構 數組與鏈表 線性結構 線性數據結構有兩端,有時被稱為左右,某些情況被稱為前后。你也可以稱為頂部和底部,名字都不重要。將兩個線性數據結構區分開的方法...
摘要:鏈表與遞歸已經從底層完整實現了一個單鏈表這樣的數據結構,并且也依托鏈表這樣的數據結構實現了棧和隊列,在實現隊列的時候對鏈表進行了一些改進。計算這個區間內的所有數字之和。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言 【從蛋殼到滿天飛】JAVA 數據結構解析和算法實現,全部文...
摘要:鏈表與遞歸已經從底層完整實現了一個單鏈表這樣的數據結構,并且也依托鏈表這樣的數據結構實現了棧和隊列,在實現隊列的時候對鏈表進行了一些改進。計算這個區間內的所有數字之和。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言 【從蛋殼到滿天飛】JAVA 數據結構解析和算法實現,全部文...
閱讀 3078·2021-11-24 09:38
閱讀 1330·2021-09-22 15:27
閱讀 2968·2021-09-10 10:51
閱讀 1504·2021-09-09 09:33
閱讀 917·2021-08-09 13:47
閱讀 2072·2019-08-30 13:05
閱讀 892·2019-08-29 15:15
閱讀 2425·2019-08-29 12:21