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 写类方式之一
Jul 05 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
Oct 29 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
Feb 16 Javascript
js实现三张图(文)片一起切换的banner焦点图
Aug 25 Javascript
基于JavaScript实现移除(删除)数组中指定元素
Jan 04 Javascript
jQuery如何跳转到另一个网页 就这么简单
Dec 28 Javascript
js Canvas绘制圆形时钟效果
Feb 17 Javascript
深入理解JavaScript的async/await
Aug 05 Javascript
webpack-url-loader 解决项目中图片打包路径问题
Feb 15 Javascript
Vue作用域插槽实现方法及作用详解
Jul 08 Javascript
超详细小程序定位地图模块全系列开发教学
Nov 24 Javascript
Ajax实现局部刷新的方法实例
Mar 31 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
json 入门基础教程 推荐
2009/10/31 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
Python实现多线程抓取妹子图
2015/08/08 Python
详解Python爬虫的基本写法
2016/01/08 Python
python的继承知识点总结
2018/12/10 Python
20行python代码实现人脸识别
2019/05/05 Python
Python初学者常见错误详解
2019/07/02 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
美国创意之家:BulbHead
2017/07/12 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
厂长助理岗位职责
2013/12/27 职场文书
工作鉴定评语
2014/05/04 职场文书
班训口号大全
2014/06/18 职场文书
Python+Appium自动化测试的实战
2021/06/30 Python
python blinker 信号库
2022/05/04 Python