本文实例讲述了JS实现线性表的顺序表示方法。分享给大家供大家参考,具体如下:
线性表的顺序表示指的是用一组地址连接的存储单元依次存储线性表的数据元素。通常称这种存储结构的线性表为顺序表。
顺序表的特点是以元素在计算机内物理位置相邻来表示数据元素之间的逻辑关系。每一个数据元素的存储位置都和线性表的起始位置相差一个和数据元素在线性表中的位序成正比的常数。也就是说只要确定了存储线性表的起始位置,线性表中的任一元素都可以随机存储,所以说,顺序表是一种随机存取的存储结构。
高级语言中的数组与其相似,所以我们用数组来描述顺序存储结构。
下面描述了逻辑关系的变化
下面我们来实现插入和删除的过程
首先是插入
我们在第i(1<=i<=n)个元素之前插入一个元素,需将第i至n个元素向后移动一个位置。代码如下
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body onload="ListInsert([1,2,3,4],2,5)"> </body> <script type="text/javascript"> function ListInsert(a,i,e){ //在a的第i个位置之前插入e var j, a_len=a.length; for(j=a_len-1;j>=i-1;j--){ a[j+1]=a[j]; } a[i-1]=e; alert(a);//1,5,2,3,4 } </script> </html>
同样的道理,删除第i个元素的代码为
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body onload="ListDelete([1,2,3,4,5,6,7,8],3)"> </body> <script type="text/javascript"> function ListDelete(a,i){ //删除a集合第i个位置的值 var e=a[i-1],//被删除的元素 a_len=a.length; for(j=i-1;j<=a_len-1;j++){ a[j-1]=a[j]; } a[j-1]=null; alert(a);//1,2,4,5,6,7,8 } </script> </html>
从上面两个算法可以看出,时间主要耗费在移动元素上,而移动元素的个数取决于插入或删除元素的位置。根据概率论的相关知识,可以得出在顺序存储结构的线性表中插入或删除一个数据元素时,平均约移动表中一般元素。如果表长为n,则上面两个算法的时间复杂度是o(n/2),又由于n/2和n都处于线性阶。所以直接表示为o(n)
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
JS,线性表,顺序表示,数据结构
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。