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 相关文章推荐
JS实现图片预加载无需等待
Dec 21 Javascript
javaScript中的this示例学习详解及工作原理
Jan 13 Javascript
javascript 获取浏览器版本
Jan 21 Javascript
JS实现跟随鼠标的链接文字提示框效果
Aug 06 Javascript
jQuery实现连续动画效果实例分析
Oct 09 Javascript
JS中递归函数
Jun 17 Javascript
js获取指定字符前/后的字符串简单实例
Oct 27 Javascript
VUE多层路由嵌套实现代码
May 15 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 Javascript
Bootstrap table表格初始化表格数据的方法
Jul 25 Javascript
vue中使用vue-cli接入融云实现即时通信
Apr 19 Javascript
JavaScript实现动态生成表格
Aug 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
YB217、YB235、YB400浅听
2021/03/02 无线电
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
超简单的Vue.js环境搭建教程
2017/03/17 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
numpy中loadtxt 的用法详解
2018/08/03 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
前台文员个人求职信范文
2014/01/05 职场文书
学生保证书范文
2014/04/28 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
致青春观后感
2015/06/09 职场文书
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python