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 相关文章推荐
修改file按钮的默认样式实现代码
Apr 23 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 Javascript
自写的jQuery异步加载数据添加事件
May 15 Javascript
DOM 高级编程
May 06 Javascript
js文字横向滚动特效
Nov 11 Javascript
实现高性能JavaScript之执行与加载
Jan 30 Javascript
利用Vue.js实现checkbox的全选反选效果
Jan 18 Javascript
利用vscode编写vue的简单配置详解
Jun 17 Javascript
JavaScript变量作用域_动力节点Java学院整理
Jun 27 Javascript
解决axios发送post请求返回400状态码的问题
Aug 11 Javascript
Vue前端判断数据对象是否为空的实例
Sep 02 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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
python关键字and和or用法实例
2015/05/28 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
轻化专业学生实习自我鉴定
2013/09/20 职场文书
晚归检讨书
2014/02/19 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
趣味运动会赞词
2015/07/22 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
JavaScript实例 ODO List分析
2022/01/22 Javascript
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL