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 相关文章推荐
用javascript父窗口控制只弹出一个子窗口
Apr 10 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
Jan 10 Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 Javascript
jQuery动态生成Bootstrap表格
Nov 01 Javascript
关于Stream和Buffer的相互转换详解
Jul 26 Javascript
vue-router 权限控制的示例代码
Sep 21 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 jQuery
浅谈Vue数据响应
Nov 05 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
Sep 18 Javascript
vue+AI智能机器人回复功能实现
Jul 16 Javascript
JavaScript逻辑运算符相关总结
Sep 04 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 类型转换函数intval
2009/06/20 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
javascript 写类方式之五
2009/07/05 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
jQuery实现评论模块
2020/08/19 jQuery
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
Python科学计算包numpy用法实例详解
2018/02/08 Python
django中静态文件配置static的方法
2018/05/20 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
weblogic面试题
2016/03/07 面试题
诉讼代理人授权委托书
2014/04/08 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
节水口号标语
2014/06/19 职场文书
汽车转让协议书范本
2014/12/07 职场文书
感谢师恩主题班会
2015/08/17 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
canvas实现贪食蛇的实践
2022/02/15 Javascript
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技