您的位置:首页 > 理论基础 > 数据结构算法

ES数据结构了解下

2019-06-21 13:29 63 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/a1396537376/article/details/93189161

ES数据结构一:线性数组结构。

class Pojo {
constructor(){
this.elements = new Array(0);
}
//获取数组的长度
size(){
return this.elements.length;
}
//向数组末尾添加一个元素
add(element){
//创建一个新数组
let NewArry = new Array(this.elements.length+1);
//将原数组元素放入新数组中
for (let i =0;i<this.elements.length;i++){
NewArry[i] = this.elements[i];
}
//添加数据
NewArry[this.elements.length] = element;
//替换地址
this.elements = NewArry;
}
//删除数组中的元素
delete(index){
//逻辑判断
if (index < 0 || index>this.elements.length){
throw new Error('下标越界');
} else {
//声明一个新的数组,长度减一
let NewArry = new Array(this.elements.length - 1);
//数组元素的复制
for(let i=0;i<NewArry.length;i++){
if (i<index){
NewArry[i] = this.elements[i];
} else {
NewArry[i] = this.elements[i+1];
}
}
//替换地址
this.elements = NewArry;
}
}
//插入元素到指定位置
insert(index,element){
let NewArray = new Array(this.elements.length+1);
//复制元素到新数组
for (let i =0;i<this.elements.length;i++){
//在目标元素索引之前
if(i<index){
NewArray[i] = this.elements[i];
} else {
NewArray[i+1] = this.elements[i];
}
}
NewArray[index] = element;
//替换地址
this.elements = NewArray;
}
//获取数组中的某个元素
get(index){
return this.elements[index];
}
show(){
console.log(this.elements.toString());
}
}

测试方法:

const main = ()=>{
let pj = new Pojo();
pj.add(1);
pj.add(2);
pj.add(3);
//pj.delete(2);
pj.insert(1,6);
pj.show();
console.log(pj.size());
};
main();

输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: