鍊錶儲存有序的元素集合,但不同於陣列,鍊錶中的元素在記憶體中並不是連續放置的。每個元素由乙個儲存元素本身的節點和乙個指向下乙個元素的引用(指標或鏈結)組成。
鍊錶的乙個好處在於,新增或者移除元素的時候不需要移動其他的元素。然而鍊錶需要使用指標。陣列可以直接訪問任何位置的元素,而鍊錶想要訪問中間的乙個元素,需要從起點(表頭)開始迭代,直到找到所需的元素。
function linklist()
let length = 0;
let head = null;
// 向鍊錶尾部追加元素
let node = new node(ele);
let current;
if(head == null)else
current.next = node;
}length++;
}// 從鍊錶中移出元素(從特定位置移出)
this.removeat = function(pos)else
pre.next = current.next;
}length--;
return current.ele;
}else
}// 在任意位置插入元素
this.insert = function(pos, ele)else
node.next = current;
pre.next = node;
}length++;
return true;
}else
}// 將linklist物件轉換成乙個字串
this.tostring = function()
console.log(string);
return string;
}// 該方法接收乙個值,如果在列表中能找到它,就返回元素的位置,否則返回-1
this.indexof = function(ele)
index++;
current = current.next;
}return -1;
}// 從鍊錶中移出元素(通過特定的元素)
this.remove = function(ele)
this.isempty = function()else
return length == 0;
}this.size = function()
this.gethead = function()
}
測試:
var link = new linklist();
link.tostring();
link.removeat(2);
link.tostring();
link.remove(4);
link.tostring();
link.isempty();
link.size();
link.gethead();
js實現鍊錶的資料結構
js實現鍊錶 一定要畫圖 class node class linkedlist js鍊錶新增資料 element 如果不為空 else 直到迴圈結束,也就是當前節點的next指標不存在,也就是鍊錶的末尾就將next指標指向新的節點 current.next newnode this length ...
js資料結構 鍊錶
大家都用過js中的陣列,陣列其實是一種線性表的順序儲存結構,它的特點是用一組位址連續的儲存單元依次儲存資料元素。而它的缺點也正是其特點而造成,比如對陣列做刪除或者插入的時候,可能需要移動大量的元素。這裡大致模擬一下陣列的插入操作 function insert arr,index,data arr ...
js資料結構 鍊錶
大家都用過js中的陣列,陣列其實是一種線性表的順序儲存結構,它的特點是用一組位址連續的儲存單元依次儲存資料元素。而它的缺點也正是其特點而造成,比如對陣列做刪除或者插入的時候,可能需要移動大量的元素。這裡大致模擬一下陣列的插入操作 function insert arr,index,data arr ...