顺序存储结构实现查询、删除、插入、末尾增加

顺序存储结构查询时间复杂度 O(1),插入和删除时间复杂度 O(n)

class LinearList{
    constructor() {  
        this.arr = [];
    }
    // 查询某位置的元素
    getElementAt(position) {
        return this.arr[position];
    } 
    // 在末尾增加元素
    append(element){
        this.arr[this.arr.length] = element; 
    }
    // 某位置插入元素 当前位置到结尾倒序 后一位=前一位
    insert(position, elements) { 
        if(position <= this.arr.length){ 
            // let originLen = this.length;
            elements.forEach(element => {
                for(let i = this.arr.length - 1; i >= position; i--){
                    this.arr[i+1] = this.arr[i]; 
                }
                this.arr[position] = element;   
            })  
        }else{
            elements.forEach(element => {
                this.arr[position] = elements; 
            })
        } 
    }
    // 在某位置删除元素 当前位置到结尾正序 前一位=后一位
    delete(position, count) {
        if(position >= this.arr.length) {
            return;
        }else{ 
            for(let i = 0; i < count; i++){
                for(let j = position; j < this.arr.length - 1; j++){
                    this.arr[j] = this.arr[j+1];
                }
                this.arr.length--;
            } 
        }
    } 
    // 清空数组
    clear() {
        this.arr = [];
    }
}

 

posted @ 2020-10-27 11:35  Isabel丶  阅读(109)  评论(0编辑  收藏  举报