JavaScript数据结构中串的表示与应用实例


Posted in Javascript onApril 12, 2017

本文实例讲述了JavaScript数据结构中串的表示与应用。分享给大家供大家参考,具体如下:

类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列。下面我们以串联接为例,讲解一下这种存储结构时串的操作。JavaScript自带有concat方法,该方法返回字符串值,该值包含了两个或多个提供的字符串的连接。

其实思路很简单,就是将第二个串拼接在第一个串后面,代码如下

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
<script type="text/javascript">
  function Concat(a,b){
    var t=new Array();
    var  a_len=a.length,
      b_len=b.length;
    for(var i=0;i<a_len;i++){
      t.push(a[i]);
    }
    for(var i=0;i<b_len;i++){
      t.push(b[i]);
    }
    return t;
  }
  var t=Concat("1234","abcd");
  alert(t);//1,2,3,4,a,b,c,d
</script>
  </body>
</html>

从上面的算法可以看出,在顺序存储结构中,实现串操作的原操作其实就是字符序列的复制操作的时间复杂度是基于复制的字符序列的长度的。这里我举的例子是堆分配存储的,还有一种是定长存储。这两者有什么区别呢?

定长分配就是在指定串的时候要指定一个长度限制,这样超过的部分就会被截取;而堆分配存储的存储空间是在程序执行过程中动态分配的。比如我定义一个array却不指定长度,其实就是默认采用的堆分配存储。

由于数组的分配是定义的时候就要分配,但是要是分配的少了就会出现程序的运行和想象的不一样或者是出现错误,要是分配的多了而用的少了又会出现资源的浪费,这个在大型的程序中是很浪费的,所以就要动态分配,动态分配在使用的时候再分配,知道要分配多少,这样会使得空间的利用率比较高。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js中数组Array的一些常用方法总结
Aug 12 Javascript
jquery中加载图片自适应大小主要实现代码
Aug 23 Javascript
javascript实现类似超链接的效果
Dec 26 Javascript
javascript实现列表滚动的方法
Jul 30 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
Nov 15 Javascript
zTree插件下拉树使用入门教程
Apr 11 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
Bootstrap表单控件学习使用
Mar 07 Javascript
Angular2.js实现表单验证详解
Jun 23 Javascript
Koa 使用小技巧(小结)
Oct 22 Javascript
小程序实现列表多个批量倒计时
Jan 29 Javascript
JS实现简易图片自动轮播
Oct 16 Javascript
javascript数据结构之串的概念与用法分析
Apr 12 #Javascript
详解RequireJS按需加载样式文件
Apr 12 #Javascript
JS表格组件神器bootstrap table使用指南详解
Apr 12 #Javascript
详谈jQuery.load()和Jsp的include的区别
Apr 12 #jQuery
微信小程序开发之选项卡(窗口底部TabBar)页面切换
Apr 12 #Javascript
JavaScript模块化之使用requireJS按需加载
Apr 12 #Javascript
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 #jQuery
You might like
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
arguments对象
2006/11/20 Javascript
javascript知识点收藏
2007/02/22 Javascript
asp批量修改记录的代码
2008/06/25 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
javascript版2048小游戏
2015/03/18 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
经典婚礼主持词
2014/03/13 职场文书
安全责任书怎么写
2014/07/28 职场文书
党课心得体会范文
2014/09/09 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android