使用js實現將陣列轉為鍊錶,及將鍊錶轉為陣列。

2021-09-02 07:50:26 字數 1458 閱讀 7275

陣列轉鍊錶,易懂版

function

array2list

(ary)

var nodes =

for(

var i =

0; i < ary.length; i++

) node.value = ary[i]

node.next =

null

nodes.

push

(node)

}for

(var i =

0; i < nodes.length -

1; i++

)return nodes[0]

}

陣列轉鍊錶,不占用額外空間版
function

array2list

(ary)

var node

var head =

var pnode = head //pnode變數用來儲存前乙個節點

for(

var i =

1; i < ary.length; i++

) pnode.next = node //將前乙個節點的next指向當前節點

pnode = node //將node賦值給pnode

}return head

}

陣列轉鍊錶,遞迴版,占用的棧空間為o(n)。
function

array2list

(ary, start =0)

var node =

var rest =

array2list

(ary, start +1)

node.next = rest

return node

}

鍊錶轉陣列,易懂版。
function

list2array

(head)

var result =

var p = head

while

(p)return result

}

鍊錶轉陣列,遞迴版
function

list2array

(head)

var result =

[head.value]

var restvalues =

list2array

(head.next)

return result.

concat

(restvalues)

}

鍊錶與陣列的區別

陣列是連續儲存的,而鍊錶不是連續儲存的。

陣列可以隨機訪問,而鍊錶不能,查詢只能順著鍊子遍歷下去。

陣列的插入操作為o(n),而鍊錶的插入操作為o(1)

JS實現將兩個陣列轉為乙個JSON資料

json格式的資料在我們開發中經常需要使用,如果拿到的資料正好就是json格式,那我們直接用就好,但是很多情況下,從資料庫處理出來的都是陣列,需要我們轉化一下。下面我們用js講解一下兩種出現的比較多的情況的轉化方式 一 現在有兩個陣列 var sorts 嬰兒產品 男士產品 護理產品 女士產品 全部...

使用js實現鍊錶

鍊錶是一種動態的資料結構,不同於陣列的是,鍊錶分配記憶體空間的靈活性,它不會像陣列一樣被分配一塊連續的記憶體。當你想在陣列的任意位置,插入乙個新值的時候,必須對陣列中的各個元素進行相應的位置移動才能達到目標,開銷顯然是很大的。然而鍊錶的靈活性在於它的每個元素節點分為兩部分,一部分是儲存元素本身,另一...

使用陣列實現棧,使用單向鍊錶實現佇列

棧 源 使用陣列實現棧的 出棧 入棧 返回棧頂元素 取得棧的大小 及棧的複製 最重要的是定義結構體,結構體內部兩個屬性,乙個 int 型陣列,乙個 top 表示陣列內的有效資料為 top 個。include include include typedef int datetype define ma...