Skip to content

[数据结构]线性表

LYF edited this page Aug 24, 2017 · 2 revisions

一、定义

线性表:零个或多个元素的有限序列 序列即有序序列

判断一个结构是不是线性表,看2点:

  1. 是不是零个或多个元素的有限序列;
  2. 第一个元素无前驱、最后一个元素无后继,其他元素有且仅有一个前驱和后继

二、存储结构

线性表有两种存储结构:

  1. 线性存储结构;
  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))
Clone this wiki locally