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 相关文章推荐
jQuery AJAX回调函数this指向问题
Feb 08 Javascript
jquery 使用点滴函数代码
May 20 Javascript
append和appendTo的区别以及appendChild用法
Dec 24 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
用js读、写、删除Cookie代码续篇
Dec 03 Javascript
jquery制作多功能轮播图插件
Apr 02 Javascript
EasyUI布局 高度自适应
Jun 04 Javascript
用React实现一个完整的TodoList的示例代码
Oct 30 Javascript
Vue+SpringBoot开发V部落博客管理平台
Dec 27 Javascript
如何让node运行es6模块文件及其原理详解
Dec 11 Javascript
vue2.0 实现富文本编辑器功能
May 26 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
Apr 21 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
在PHP中执行系统外部命令
2006/10/09 PHP
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
div层的移动及性能优化
2010/11/16 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
python实现的阳历转阴历(农历)算法
2014/04/25 Python
Python装饰器用法实例总结
2018/02/07 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Python魔法方法功能与用法简介
2019/04/04 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
工商管理专业学生的自我评价
2013/10/01 职场文书
事业单位请假制度
2014/01/13 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
抵押贷款承诺书
2014/05/30 职场文书
中秋节活动总结
2014/08/29 职场文书
工作年限证明模板
2014/11/01 职场文书
市场营销计划书范文
2015/01/16 职场文书
检讨书模板大全
2015/05/07 职场文书
辩护词范文大全
2015/05/21 职场文书
2016元旦主持人开场白
2015/12/03 职场文书