文档章节

小蚂蚁学习数据结构(15)——串的认识

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2016/01/15 17:58
字数 627
阅读 87
收藏 2

概念:

    串(字符串):是由0个或多个字符组成的有限序列。

    由双引号括起来 如: char str[] = "abcd";

串相等的条件:

    只有当两个串的长度相等,并且各个对应位置的字符都相等时才相等。

串的逻辑结构:

    串和线性表是非常相似的。

    区别:串的数据对象约定是字符集。


线性表的基本操作:

    以“单个元素”为操作对象


串的基本操作:

    以“串的整体”作为操作对象

    在线性表中,通常是以其中的单个元素作为操作对象的,比如删除一个元素,插入一个元素。而在串中的基本操作,通常是以“串的整体”作为操作对象的,比如:在串中查找某一个子串,求取一个子串,在串的某个位置插入一个子串以及删除某一个子串等。

串的储存表示:

    因为串是特殊的线性表,故其存储结构与线性表的存储结构类似,只不过组成串的结点是单个字符

定长顺序存储表示

    用一组地址连续的存储单元依次存放串中的字符序列。

    缺点

        1,需要事先预定义串的最大长度,但这一般很难做到。

        2,由于定义了串的最大长度,使得串的某些操作受限,因为一旦超出了最大长度,就会发生“截断”,比如:链接、插入等操作。

解决办法: 不设定最大长度,使用动态分配串的储存空间。

堆分配存储表示:

    使用 malloc和realloc等函数在堆中,动态分配存储空间。再也不用担心被截断的问题。

    优点:

        堆存储结构既有顺序存储结构的特点,处理方便,操作中对串的长度又没有任何限制,更加灵活。

        堆分配存储表示为高级程序设计语言说采用。

块链存储表示

    说白了,就是用单链表来储存串。

    优点:便于插入和删除。

    缺点:空间利用率低。

    为了提高空间利用率,可使每个节点存放多个字符,成为块链结构。这样做空间复杂度更少一些,但是处理的复杂度会增加很多。


学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog



© 著作权归作者所有

嗜学如命的小蚂蚁
粉丝 147
博文 161
码字总数 100864
作品 0
郑州
程序员
私信 提问
加载中

评论(2)

嗜学如命的小蚂蚁
嗜学如命的小蚂蚁 博主

引用来自“l00ps”的评论

6
l
l00ps
6
数据结构课程主页-2016级

  新学期,再度起程!   翻转的数据结构课程再度迎来新的一批同学。   前两年,资源建设基本完备,课堂方案逐渐完善,同学们对新型的学习方式设计给予了肯定(参见2014级问卷调查和201...

sxhelijian
2017/08/30
0
0
小蚂蚁学习数据结构(1)——认识数据结构

去年的时候,有个哥们建议我认真的学习一下数据结构,因为一些杂七杂八的事,就把这事给耽搁下来了,虽然今年也马上就要过完了(不得不感慨时间过的真快啊),但是本着“只要开始去做,什么时...

嗜学如命的小蚂蚁
2015/12/29
163
0
首届蚂蚁金服体验科技大会

大会简介 SEE = Seeking Experience & Engineering,意为探索用户体验与工程实践,由蚂蚁金服集团每年举办 1-2 次,包括专业分享、产品展台、Workshop 等内容。希望通过 SEE Conf,能与业界同...

AntV
2017/12/11
0
0
小蚂蚁学习C语言(15)——C语言指针——指针基础认识

指针 指针的重要性: 表示一些复杂的数据结构(《数据结构》) 快速的传递数据(耗时短,消耗内存也小) 使函数返回一个以上的值 能直接访问硬件 能够方便处理字符串 是理解面向对象语言中引...

嗜学如命的小蚂蚁
2015/12/11
70
0
深度|蚂蚁金服“刷脸”支付技术解读:错误率低于百万分之一

小蚂蚁说: 2017年,肯德基开设了全球首家刷脸支付餐厅。截至今年3月,支付宝4.5亿用户中已有超过1.5亿用户使用过人脸识别功能……这些对安全性和技术能力要求最高的支付交易场景背后,是蚂蚁...

兔子酱
2018/08/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
45分钟前
4
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
4
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
13
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
14
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部