javascript数据结构之顺序表
关于线性表的概念这里就不赘述了,可以自行百度和查阅资料,线性表按照存储(物理)结构分为顺序存储和链式存储,每种存储方式的不同决定了它的实现代码是不同的:
顺序存储的特点就是在内存中选一块连续的地址空间,然后将线性表放入其中,这样做便于线性表的存取,但是不利于插入和删除,而且在事先无法确定线性表长度的前提下可能会造成内存浪费或溢出。
这篇我是用javascript来实现线性表中的顺序表。
下面上代码:
var orderList = function(){
var items = []; //线性表内部定义一个容量为10的数组用来存储数据
this.items = items; //这里利用了数组是引用类型,实例属性和局部变量其实是指向同一个数组的
this.findElem = function(data){ //在表中寻找元素,返回对应的地址位置
var Symbol = false;
var temp = 0;
for(var i = 0;i < items.length;i++){
if(items[i] == data){
Symbol = true;
temp = i+1;
}
}
if(Symbol){
return temp;
}
};
this.getElem = function(num){ //获得元素操作,返回获得的元素
if(num > items.length || num < 1 || items.length == 0){
return false;
}else{
return items[num - 1]; //注意数组下标是从0开始的
}
};
this.ListInsert = function(data,pos){ //插入元素操作,返回新的数组
if(pos > items.length || pos < 1 || items.length == 0){
return false;
}else{
for(var i = items.length;i >= pos-1;i -= 1){
items[i+1] = items[i];
}
items[pos-1] = data;
return items;
}
};
this.ListDelete = function(pos){ //删除元素操作,返回删除的元素
var temp = items[pos-1];
if(pos < 1 || pos > items.length || items.length == 0){
return false;
}else{
for(var i = pos;i < items.length;i++){
items[i-1] = items[i];
}
return temp;
}
};
};
//实例化测试一下
var list = new orderList();
list.items.push("a","b","c","d","e","f","g");
console.log(list.items);
console.log(list.findElem("c"));
console.log(list.getElem(1));
console.log(list.ListInsert("j",3));
console.log(list.ListDelete(2));
console.log(list.items);
下面是在chrome的console里面调试的结果,亲测无误。

javascript数据结构之顺序表的更多相关文章
- hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)
基础数据结构——顺序表(2) Time Limit: 1000 MS Memory Limit: 10240 K Total Submit: 355(143 users) Total Accep ...
- [Python] 数据结构--实现顺序表、链表、栈和队列
说明: 本文主要展示Python实现的几种常用数据结构:顺序表.链表.栈和队列. 附有实现代码. 来源主要参考网络文章. 一.顺序表 1.顺序表的结构 一个顺序表的完整信息包括两部分,一部分是表中元素 ...
- C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...
- [数据结构]C#顺序表的实现
在数据结构的学习当中,想必C++可能是大家接触最多的入门语言了 但是C#的数据结构却很少看到,今天我写了一个C#顺序表的顺序存储结构 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是 ...
- 【PHP数据结构】顺序表(数组)的相关逻辑操作
在定义好了物理结构,也就是存储结构之后,我们就需要对这个存储结构进行一系列的逻辑操作.在这里,我们就从顺序表入手,因为这个结构非常简单,就是我们最常用的数组.那么针对数组,我们通常都会有哪些操作呢? ...
- 数据结构:顺序表(python版)
顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...
- 数据结构之顺序表,c#实现
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...
- 数据结构4:顺序表(线性表的顺序存储结构)及C语言实现
逻辑结构上呈线性分布的数据元素在实际的物理存储结构中也同样相互之间紧挨着,这种存储结构称为线性表的顺序存储结构. 也就是说,逻辑上具有线性关系的数据按照前后的次序全部存储在一整块连续的内存空间中,之间 ...
- Java——数据结构(顺序表)
这是一个顺序表的类,初始化的时候就已经确定了表的长度,之后不能添加数据,因为使用的是数组存储的数据,不过这个表的类型是泛型的. public class List { private Object[] ...
随机推荐
- 第十二章 ZYNQ-MIZ702 PS读写PL端BRAM
本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将 ...
- 【Trie】背单词
参考博客: https://www.luogu.org/problemnew/solution/P3294 https://blog.csdn.net/VictoryCzt/article/detai ...
- QAbstractItemModel使用样例与解析(Model::index使用了createIndex,它会被销毁吗?被销毁了,因为栈对象出了括号就会被销毁)
参考:qt源码 qstandarditemmodel_p.h qstandarditemmodel.h qstandarditemmodel.cpp qabstractitemmodel.h qabs ...
- css对应rgb码表16进制
- Web应用特性
什么是web应用? 软件开发架构 c/s架构 客户端 服务端 b/s架构 浏览器 服务器 本质:b/s架构其实也是c/s架构 HTTP协议 超文本传输协议:规定了客户端与服务端消息传输的格式 四大特性 ...
- (二十五)防编译后函数名通过ida查看到
在使用多个动态库时,两个动态库之间有可能存在相同名称的函数,这样会出现只有第一个函数生效,即所有对该函数的调用都将指向第一个加载的动态库的同名函数中.这样就会很混乱,而且在想改名称也不是很简单的情况下 ...
- 实验楼Python项目
整理几个实验楼小项目,有免费的也有会员的,会员的可以参考他们的实验报告. 直接去实验楼这个网站,粘贴上就能搜到. 免费专区: Kmeans聚类算法评估足球比赛 Python实现3D建模工具 K-近邻算 ...
- macos下简单的socket服务器+客户端
TCP客户端服务器编程模型: 服务器: 调用socket函数创建套接字 调用bind绑定本地IP和端口 调用listen启动监听(准备好接收客户端链接的队列) 调用accept从已连接队列中提取第一个 ...
- Matlab---三维视图的自动旋转
Matlab---三维视图的自动旋转 这里给出一种格式说明: % figure % plot3(...); % xlabel('X轴'); % ylabel('Y轴'); % zlabel('Z轴') ...
- BIO、NIO、AIO 有什么区别?(未完成)
BIO.NIO.AIO 有什么区别?(未完成)