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面向对象编程
Mar 04 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
May 28 Javascript
JavaScript实现找出数组中最长的连续数字序列
Sep 03 Javascript
学习JavaScript设计模式(接口)
Nov 26 Javascript
微信小程序引用公共js里的方法的实例详解
Aug 17 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
微信小程序实现流程进度的图样式功能
Jan 16 Javascript
Vue.js 图标选择组件实践详解
Dec 03 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 Javascript
vue+element-ui+axios实现图片上传
Aug 20 Javascript
js 函数性能比较方法
Aug 24 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 Vue.js
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 xml文件操作代码(一)
2009/03/20 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
php中关于换行的实例写法
2019/09/26 PHP
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
python检测lvs real server状态
2014/01/22 Python
Python列表list数组array用法实例解析
2014/10/28 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python字典快速保存于读取的方法
2018/03/23 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
DELPHI面试题研发笔试试卷
2015/11/08 面试题
事业单位公务员的职业生涯规划
2014/01/15 职场文书
社团活动总结模板
2014/06/30 职场文书
保研导师推荐信
2015/03/25 职场文书
优秀大学生自荐信
2015/03/26 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
高三物理教学反思
2016/02/20 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
八年级作文之友谊
2019/12/02 职场文书
详解nodejs内置模块
2021/05/06 NodeJs
python自动化测试通过日志3分钟定位bug
2021/11/20 Python
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL