JS實現鍊錶資料結構

2021-09-26 05:35:03 字數 1475 閱讀 4260

鍊錶儲存有序的元素集合,但不同於陣列,鍊錶中的元素在記憶體中並不是連續放置的。每個元素由乙個儲存元素本身的節點和乙個指向下乙個元素的引用(指標或鏈結)組成。

鍊錶的乙個好處在於,新增或者移除元素的時候不需要移動其他的元素。然而鍊錶需要使用指標。陣列可以直接訪問任何位置的元素,而鍊錶想要訪問中間的乙個元素,需要從起點(表頭)開始迭代,直到找到所需的元素。

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 ...