随笔分类 -  数据结构

摘要:前言: 2、3、4章讨论的线性结构中的数据元素都是非结构的原子类型,元素的值是不再分解的。本章讨论的两种数据结构 数组和广义表可以看成是线性表在下述含以上的扩展:表中的数据元素本身也是一个数据结构。 其中、数组是一种比较熟知的数据类型,几乎所有程序语言都把数组类型设定为固有类型,前两节节以抽象数据类 阅读全文
posted @ 2016-12-31 18:06 AHAU航哥 阅读(453) 评论(0) 推荐(0)
摘要:前言: 目录: 1.串类型的定义 2.串的表示和实现 3.串的模式匹配算法 4.串操作应用举例 正文: 串的模式匹配即,在给定主串S 中,搜索子串T 的位置,如果存在T 则返回其所在位置,否则返回 0 串的模式匹配算法 主串 S: a b c a b c d s v t 子串 T: a b c d 阅读全文
posted @ 2016-12-28 19:32 AHAU航哥 阅读(722) 评论(0) 推荐(0)
摘要:前言: 计算机上的应用程序几乎都是以字符串数据作为处理对象,然而,现今我们使用的计算机的硬件结构主要是反映数值计算的需要的,因此,在处理字符串数据时比处理整数和浮点数要复杂得多。而且,在不同类型的应用中,所处理的字符串具有不同的特点,要有效地实现字符串的处理,就必须根据具体情况使用合适的存储结构。这 阅读全文
posted @ 2016-12-25 21:05 AHAU航哥 阅读(3698) 评论(0) 推荐(0)
摘要:前言: 本节讲述,队列的入队 和 离队行为,由事件决定情况下,是如何实现的。 目录: 离散事件模拟 正文: 问题:假设某银行有4个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需在每个窗口前顺次排队,对于刚进入银行的客户,如果某个窗 阅读全文
posted @ 2016-12-23 21:26 AHAU航哥 阅读(1700) 评论(0) 推荐(0)
摘要:前言: 在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头 到 队列尾的元素之外, 尚需附设两个 变量(虚拟指针): front 和 rear 分别指向 头 和 尾对应的数组下标。为了在 C 语言中描述的方便, 在此:初始化建空队列时, 令 front = rear=0 。当插入新 阅读全文
posted @ 2016-12-20 20:35 AHAU航哥 阅读(554) 评论(0) 推荐(0)
摘要:前言: 我们生活中排队模型的特点是,最早进入队伍的元素最早离开。本节提出队列来描述类似排队的结构模型。 目录: 1、栈 2、栈的应用举例 3、栈与递归的实现 4、队列 5、离散事件模型 正文: 队列的定义: 和栈相反,队列(queue)是一种先进先出(first in first out, FIFO 阅读全文
posted @ 2016-12-20 17:31 AHAU航哥 阅读(552) 评论(0) 推荐(0)
摘要:前言: 栈还有一个总要应用是在程序设计语言中实现递归。一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称作递归函数。 目录: 1、栈 2、栈的应用举例 3、栈与递归的实现 4、队列 5、离散事件模型 正文: 3、栈与递归的实现 递归程序设计是一个强有力的工具。 1)很多数学函数是递归调用 阅读全文
posted @ 2016-12-20 14:53 AHAU航哥 阅读(447) 评论(0) 推荐(0)
摘要:前言: 本节为栈的应用举例,只包括代码实现部分 目录: 2.栈的应用举例 进制转换: 括号匹配: 正文: 进制转换实现代码: 注意:此函数要和上一节,栈的实现代码放在一起 括号匹配代码实现: 匹配代码在 CharMatch(char *pc) 函数内实现,其他部分都是栈的基本操作。 阅读全文
posted @ 2016-12-20 12:54 AHAU航哥 阅读(1199) 评论(0) 推荐(0)
摘要:前言: 栈和队列 是两种重要的线性结构。从数据结构角度来看,栈和队列也是线性表,它的特殊性在于其操作是线性表的子集,是操作受限的线性表,因此可以称作限定性的数据结构。 (限定性:如、人为的规定线性表只能从表尾插入和删除结点数据元素,那么这样的线性表就是栈) 目录: 1、栈 2、栈的应用举例 3、栈与 阅读全文
posted @ 2016-12-16 21:10 AHAU航哥 阅读(416) 评论(0) 推荐(0)
摘要:前言: 学习了线性表的 顺序结构 和链式结构,那么这种学习有什么用? 本节将会学习如何用线性表来实现 一元多项式的表示及相加。 目录: 1.一元多项式 正文: 一元多项式: 数学上,一个一元多项式可写成 按幂升序排列的形式: Pn(x)= P0 + P1x1 + P2x2 + .... + Pnxn 阅读全文
posted @ 2016-12-16 17:50 AHAU航哥 阅读(5790) 评论(0) 推荐(0)
摘要:前言: 循环链表:是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成了一个环。因此,从表中任意节点出发均可找到表中的其他结点。 双向链表:前讨论的链式存储结构中个,每个结点都只有一个指示其后继元素的指针域,那么找下一个元素(NextElem) 的时间复杂度 为 O 阅读全文
posted @ 2016-12-15 21:21 AHAU航哥 阅读(414) 评论(0) 推荐(0)
摘要:前言: 由于一些高级程序设计语言中,并没有 “指针” 类型,因此上一节中用指针来描述的单链表不能被实现,这时候我们就会使用另一种形式链表:静态链表。 目录: 1.线性表的链式表示和实现 1.1线性链表 单链表(指针型线性链表) 静态链表 1.2循环链表 1.3双向链表 正文: 线性表的静态单链表存储 阅读全文
posted @ 2016-12-15 19:20 AHAU航哥 阅读(384) 评论(0) 推荐(0)
摘要:线性结构的特点是在数据的非空有限集中: 1)存在唯一一个被称为“第一个”的数据元素 2)存在唯一一个被称为“最后一个”的数据元素 3)除了第一个元素之外,集合中每个数据元素均只有一个前驱 4)除最后一个元素外,集合中每个数据元素均只有一个后继 1.线性表的类型定义 2.线性表的顺序表示和实现 1.线 阅读全文
posted @ 2016-12-13 21:21 AHAU航哥 阅读(612) 评论(0) 推荐(0)
摘要:说明:本篇博文,作为个人的学习笔记使用。参考教材:[数据结构(c语言版)].严蔚敏 数据结构系列,所有代码实现部分,复制即可运行。 代码运行环境:Visual C++ 6.0 一、什么是数据结构 二、基本概念和术语 三、抽象数据类型的表示与实现 四、算法和算法分析 一、什么是数据结构 1) 用计算机 阅读全文
posted @ 2016-12-12 20:00 AHAU航哥 阅读(431) 评论(0) 推荐(0)