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 相关文章推荐
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
JSON 和 JavaScript eval使用说明
Jun 13 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
Aug 05 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
JS求平均值的小例子
Nov 29 Javascript
js导出txt示例代码
Jan 14 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
Oct 01 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
Sep 19 Javascript
ES6新特性八:async函数用法实例详解
Apr 21 Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 Javascript
vue-cli3搭建项目的详细步骤
Dec 05 Javascript
vue 内联样式style中的background用法说明
Aug 05 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
用header 发送cookie的php代码
2007/03/16 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
配件采购员岗位职责
2013/12/03 职场文书
教师实习自我鉴定
2013/12/13 职场文书
5s标语大全
2014/06/23 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
小学老师对学生的评语
2014/12/29 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis