-
Notifications
You must be signed in to change notification settings - Fork 52
[数据结构]线性表
LYF edited this page Aug 24, 2017
·
2 revisions
线性表:零个或多个元素的有限序列 序列即有序序列
判断一个结构是不是线性表,看2点:
- 是不是零个或多个元素的有限序列;
- 第一个元素无前驱、最后一个元素无后继,其他元素有且仅有一个前驱和后继
线性表有两种存储结构:
- 线性存储结构;
- 链接存储机构;
javascript中的数组我们可以认为是线性存储结构的线性表
/**
* @param {array} list
* @param {number} i
* @param {any} element
* @returns list
* 在给定的数组中的第i位插入element元素
*/
function insertArray (list, i, element) {
let length = list.length
if (i < 0 || i > length) throw new Error('数组下标越界')
if (i !== length) {
for (let k = length - 1; k > 0; k--) {
list[k + 1] = list[k]
}
}
list[i] = element
return list
}
/**
*
* @param {array} list
* @param {number} i
* 在给定的数组中删除第i位的元素
*/
function deleteArray (list, i) {
let length = list.length
if (i < 0 || i > length) throw new Error('数组下标越界')
if (i !== length) {
for (let k = i; k < length; k++) {
list[k] = list[k + 1]
}
}
list.length = --length
return list
}
console.log(insertArray([1,2,3,4,5], 2, 999))
console.log(deleteArray([1,2,888,3,4,5], 2))