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库与其他JS库冲突的解决办法
Feb 07 Javascript
Chrome中JSON.parse的特殊实现
Jan 12 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
AngularJS HTML编译器介绍
Dec 06 Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 Javascript
JavaScript Ajax实现异步通信
Dec 14 Javascript
PHP实现本地图片上传和验证功能
Feb 27 Javascript
js实现图片懒加载效果
Jul 17 Javascript
Vue拖拽组件开发实例详解
May 11 Javascript
JavaScript中var的重要性实例分析
Jul 09 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
Jun 11 Javascript
vue 插槽简介及使用示例
Nov 19 Vue.js
基于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+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
Python实现程序的单一实例用法分析
2015/06/03 Python
在Python的Django框架中编写编译函数
2015/07/20 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
对python中的pop函数和append函数详解
2018/05/04 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
python获取url的返回信息方法
2018/12/17 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
商务英语本科生的自我评价分享
2013/11/15 职场文书
个人实用的自我评价范文
2013/11/23 职场文书
如何写好升职自荐信
2014/01/06 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
学习nginx基础知识
2021/09/04 Servers
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python