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不会自动回收xmlHttpRequest对象 导致了内存溢出
Jun 18 Javascript
jquery入门—访问DOM对象方法
Jan 07 Javascript
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
Apr 20 Javascript
jQuery标签替换函数replaceWith()的使用例子
Aug 28 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
Aug 02 Javascript
提高Node.js性能的应用技巧分享
Aug 10 Javascript
详解一个基于react+webpack的多页面应用配置
Jan 21 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
Jan 30 Javascript
基于javascript的无缝滚动动画1
Aug 07 Javascript
angular共享依赖的解决方案分享
Oct 15 Javascript
Vue中使用import进行路由懒加载的原理分析
Apr 01 Vue.js
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
Apache2 httpd.conf 中文版
2006/12/06 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
[42:24]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第一场 11.01
2020/11/02 DOTA
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
python函数形参用法实例分析
2015/08/04 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
python数值基础知识浅析
2019/11/19 Python
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
请说出几个常用的异常类
2013/01/08 面试题
小孩百日宴答谢词
2014/01/15 职场文书
求职毕业生自荐书
2014/02/08 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
2019秋季运动会口号
2019/06/25 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书