JS的基本数据结构实现---线性表
来源:互联网 发布:圣剑网络 总监 编辑:程序博客网 时间:2024/05/23 01:56
1.顺序存储结构
利于存取,不利于插入删除
<input type="text" id="name" placeholder="姓名"/><label for="sex">性别</label><select id="sex" > <option value="male">男</option> <option value="female">女</option></select><input type="text" placeholder="索引(从0开始)" id="index"></input><input type="button" value="插入" id="insert"></input><input type="button" value="获取" id="get"/><input type="button" value="删除" id="del"/><h3>结果</h3><p id="result"></p>
var sqList=[],
insert=document.getElementById(‘insert’),
result=document.getElementById(‘result’),
getBtn=document.getElementById(‘get’),
delBtn=document.getElementById(‘del’);
>function insertItem(name,sex,i){ //插入>var obj={};>obj.name=this.name;>obj.sex=this.sex;>if(i<0||i>sqList.length){>result.innerHTML="it's illegal"+i+"<br>">}>else{>for(var j=sqList.length-1;j>i;j++){>sqList[j+1]}=sqList[j];>}>sqList[i]=obj;>}
function deleteItem(index){//删除 if(sqList.length==0){ result.innerHTML="sqList is null"; } if(index<0||index>sqList.length-1){ result.innerHTML="index is illegal"; }else if(index<sqList.length-1){ for(var k=index;k<sqList.length-1;k++){ sqList[k]=sqList[k+1]; } sqList.length--; } return sqList;}
2.链式存储结构
整个链表是靠指针链接起来的。这就避免了内存浪费或溢出,但是对于获取某个元素却比顺序结构要麻烦
var LinkNode=function(data,next){//定义单链表 this.data=data; this.next=next;}//单链表初始化function createLink(){ var list=new LinkNode(0,null); return list;//这个空链表拥有一个头结点,头结点的数据域data存储的不是真的数据,而是该链表长度,同时,当链表为空的时候,头结点的next指针域是null的function insertLink(list,i,data){ //插入一个节点 var obj=list; var j=1; while(obj&&j<i){ j++; obj=obj.next; } if(!obj||i<1){ return error; } var sNode = new LinkNode(data,obj.next); obj.next = sNode; list.data+=1;}}//首先找到插入位置的链表指针指向哪里,再把要插入元素的指针指向这里,把上一个元素的指针指向插入元素的位置,数据长度加一function deleteItem(list,i){ var obj=list; var j=1; while(obj&&j<i){ j++; obj=obj.next; } var item=obj.next; obj=item.next; item=null; list.data-=1; return list; //同时为了让GC尽快回收被删除元素占用的空间,这里让其item=null(在C语言中可以 采用free函数,在js中设为null会让浏览器尽快通过引用计数或标记删除策略通知GC回收空间)。}
0 0
- JS的基本数据结构实现---线性表
- 基本线性数据结构的Python实现
- 数据结构-顺序线性表基本操作实现
- 数据结构-链式线性表基本操作实现
- 数据结构:线性表删除操作的php和js实现
- 数据结构:线性表删除操作的php和js实现
- 数据结构线性表的基本函数
- 线性表的基本操作-数据结构
- 数据结构01 线性表的基本算法
- 数据结构C语言实现线性表(顺序实现)的初始化与基本操作
- 爹地的实验:实验一: 数据结构实验一线性表的基本操作实现及其应用
- 【数据结构】双向循环线性表的基本操作--C++/C实现
- 【数据结构】双向循环线性表的基本操作--C++/C实现
- 数据结构实验一线性表的基本操作实现及其应用
- 基本数据结构(线性表)
- 【数据结构】线性表基本操作
- 数据结构 线性表算法的实现
- 数据结构线性表顺序结构的实现
- Swift3.0 归并排序
- 求大神指教
- jQuery中on(),bind(),live(),delegate()的区别
- javaSE,EE,ME的区别
- 解决makefile编写中遇到此类错误makefile:14: *** missing separator. Stop.
- JS的基本数据结构实现---线性表
- J-log
- Java之反射机制
- 在android中使用像ios导航。
- 关于text段、data段和bss段
- 《ACM程序设计》书中题目P
- SQL与Mysql相互迁移
- js和jquery的clone
- Ubuntu14.04下安装CUDA&Theano