JS实现线性表的顺序表示方法示例【经典数据结构】


Posted in Javascript onApril 11, 2017

本文实例讲述了JS实现线性表的顺序表示方法。分享给大家供大家参考,具体如下:

线性表的顺序表示指的是用一组地址连接的存储单元依次存储线性表的数据元素。通常称这种存储结构的线性表为顺序表。

顺序表的特点是以元素在计算机内物理位置相邻来表示数据元素之间的逻辑关系。每一个数据元素的存储位置都和线性表的起始位置相差一个和数据元素在线性表中的位序成正比的常数。也就是说只要确定了存储线性表的起始位置,线性表中的任一元素都可以随机存储,所以说,顺序表是一种随机存取的存储结构。

高级语言中的数组与其相似,所以我们用数组来描述顺序存储结构。

下面描述了逻辑关系的变化

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 相关文章推荐
JQuery实现简单验证码提示解决方案
Dec 20 Javascript
jQuery中append()方法用法实例
Dec 25 Javascript
JavaScript修改浏览器tab标题小技巧
Jan 06 Javascript
jquery代码实现多选、不同分享功能
Jul 31 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
Sep 18 Javascript
js 弹出虚拟键盘修改密码的简单实例
Oct 10 Javascript
js转换对象为xml
Feb 17 Javascript
在Vue中使用echarts的方法
Feb 05 Javascript
jQuery实现简单弹幕效果
Nov 28 jQuery
基于Vue实现微前端的示例代码
Apr 24 Javascript
利用uni-app生成微信小程序的踩坑记录
Apr 05 Javascript
基于vuejs实现一个todolist项目
Apr 11 #Javascript
vue实现todolist单页面应用
Apr 11 #Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
Apr 11 #Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
Apr 11 #Javascript
javascript数组去重常用方法实例分析
Apr 11 #Javascript
JS实现针对给定时间的倒计时功能示例
Apr 11 #Javascript
vuejs绑定class和style样式
Apr 11 #Javascript
You might like
PHP 高手之路(二)
2006/10/09 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
php调用c接口无错版介绍
2014/03/11 PHP
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
AngularJS实现表单手动验证和表单自动验证
2015/12/09 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
小程序实现搜索框
2020/06/19 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
Python爬虫爬取有道实现翻译功能
2020/11/27 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
《草原》教学反思
2014/02/15 职场文书
小学评语大全
2014/04/22 职场文书
工作鉴定评语
2014/05/04 职场文书
社区两委对照检查材料
2014/08/23 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS