陣列轉鍊錶,易懂版
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...