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


    顺序存储结构查询时间复杂度 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 = [];
        }
    }
  • 相关阅读:
    进程、线程、协程
    C++内存模型
    动态库dll与静态库lib
    virtual 虚函数表
    C++面试随笔
    alloc()、malloc()、calloc()、realloc()区别及用法
    C/C++ 面试题记录
    VC底层钩子程序在Win7/Vista下无效
    JMeter安装之后修成中文版
    明天开始 新的旅程
  • 原文地址:https://www.cnblogs.com/Isabel-1996/p/13883932.html
Copyright © 2020-2023  润新知