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实现2048游戏示例
May 04 Javascript
JS获取各种宽度、高度的简单介绍
Dec 19 Javascript
JavaScript中实现继承的三种方式和实例
Jan 29 Javascript
详解vue渲染从后台获取的json数据
Jul 06 Javascript
Vue学习笔记进阶篇之函数化组件解析
Jul 21 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
Nov 17 Javascript
Bootstrap 中data-[*] 属性的整理
Mar 13 Javascript
浅谈一种让小程序支持JSX语法的新思路
Jun 16 Javascript
JavaScript使用表单元素验证表单的示例代码
Aug 20 Javascript
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
vue组件冲突之引用另一个组件出现组件不显示的问题
Apr 13 Vue.js
Rust中的Struct使用示例详解
Aug 14 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关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
PHP调用其他文件中的类
2018/04/02 PHP
php 可变函数使用小结
2018/06/12 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
jQuery页面加载初始化的3种方法(推荐)
2016/06/02 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
python中的对象拷贝示例 python引用传递
2014/01/23 Python
python实现根据图标提取分类应用程序实例
2014/09/28 Python
python列表操作实例
2015/01/14 Python
Python文件和目录操作详解
2015/02/08 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
详细介绍Python的鸭子类型
2016/09/12 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
python 日志增量抓取实现方法
2018/04/28 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
春季防火方案
2014/05/10 职场文书
商场促销活动总结
2014/07/10 职场文书
客户答谢会活动方案
2014/08/31 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
MySQL里面的子查询的基本使用
2021/08/02 MySQL
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android