博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript数据结构之顺序表
阅读量:5093 次
发布时间:2019-06-13

本文共 1865 字,大约阅读时间需要 6 分钟。

关于线性表的概念这里就不赘述了,可以自行百度和查阅资料,线性表按照存储(物理)结构分为顺序存储和链式存储,每种存储方式的不同决定了它的实现代码是不同的:

顺序存储的特点就是在内存中选一块连续的地址空间,然后将线性表放入其中,这样做便于线性表的存取,但是不利于插入和删除,而且在事先无法确定线性表长度的前提下可能会造成内存浪费或溢出。

这篇我是用javascript来实现线性表中的顺序表。

 下面上代码:

1 var orderList = function(){ 2   var items = [];  //线性表内部定义一个容量为10的数组用来存储数据 3   this.items = items; //这里利用了数组是引用类型,实例属性和局部变量其实是指向同一个数组的 4  5   this.findElem = function(data){ //在表中寻找元素,返回对应的地址位置 6     var Symbol = false; 7     var temp = 0; 8     for(var i = 0;i < items.length;i++){ 9       if(items[i] == data){10         Symbol = true;11         temp = i+1;12       }13     }14     if(Symbol){15         return temp;16     }17   };18 19   this.getElem = function(num){ //获得元素操作,返回获得的元素20     if(num > items.length || num < 1 || items.length == 0){21       return false;22     }else{23       return items[num - 1]; //注意数组下标是从0开始的24     }25   };26 27   this.ListInsert = function(data,pos){ //插入元素操作,返回新的数组28     if(pos > items.length || pos < 1 || items.length == 0){29       return false;30     }else{31       for(var i = items.length;i >= pos-1;i -= 1){32         items[i+1] = items[i];33       }34       items[pos-1] = data;35       return items;36     }37   };38 39   this.ListDelete = function(pos){ //删除元素操作,返回删除的元素40     var temp = items[pos-1];41     if(pos < 1 || pos > items.length || items.length == 0){42       return false;43     }else{44       for(var i = pos;i < items.length;i++){45         items[i-1] = items[i];46       }47       return temp;48     }49   };50 51 52 };53 54 //实例化测试一下55 var list = new orderList();56 list.items.push("a","b","c","d","e","f","g");57 console.log(list.items);58 console.log(list.findElem("c"));59 console.log(list.getElem(1));60 console.log(list.ListInsert("j",3));61 console.log(list.ListDelete(2));62 console.log(list.items);

 

下面是在chrome的console里面调试的结果,亲测无误。

 

转载于:https://www.cnblogs.com/jeavenwong/p/7355128.html

你可能感兴趣的文章
wamp环境下php命令运行时出现错误:无法启动此程序,因为计算机中丢失OCI.dll。尝试重新安装该程序以解决此问题...
查看>>
组合数取模
查看>>
objective-c和java下解析对象类型和数组类型JSON字符串
查看>>
Lotto--poj2245
查看>>
91. Decode Ways
查看>>
246. Strobogrammatic Number
查看>>
2.5 浮点型数值
查看>>
[ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布局
查看>>
666的vue.mixin
查看>>
bbs小项目整理(五)(登录模块的完成)
查看>>
微信小程序入门
查看>>
[Markdown]纯文本标记语言MarkdowPad2--MD语法知识
查看>>
8岁小学生表白遭拒:被一部iPhone打败
查看>>
解决git 命令出现end问题
查看>>
20169217 《Linux内核原理与分析》 第十一周作业
查看>>
{面试题4: 替换空格}
查看>>
Centos 03 基础命令
查看>>
cNoteSetColor_命令窗口颜色设置
查看>>
!学习笔记:前端测试 、前端调试、console 等
查看>>
Eclipse内置Tomcat的配置
查看>>