数据结构与算法-C语言描述
温柔梦9527
只要努力,什么都会成为可能
展开
-
(1)数据结构的基本概念
1.数据(Data)数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合数据是对客观事物采用计算机能够识别、存储和处理的形式所进行的描述数据就是计算机化的信息计算机一诞生,数据就成了计算机处理的对象以前的计算机主要用于数值据算,并且数据量小结构简单,数据仅仅由算术运算、逻辑运算,数据是整型、实型、布尔型以前主要把精力放在程序设计上面,没有过多的重视应该在计算机中如何组织...原创 2019-10-29 21:28:26 · 228 阅读 · 0 评论 -
(13)图
线性表中结点间的关系是一对一的,每个结点仅仅有一个直接前驱和一个直接后继(如果存在前驱和后继)树是按分层关系组织的结构,树结构中结点之间的关系是一对多,一个双亲可以有多个孩子,每个孩子只能有一个双亲集合结构中的数据元素除了属于同一个集合之外没有其它的关系图是比树更一般、更复杂的非线性数据结构图结构中结点之间的关系是任意的,每个元素都可以和其它任何元素相关,元素之间的关系是多对多的图是一种...原创 2019-10-29 21:33:28 · 193 阅读 · 0 评论 -
(10)树和二叉树
之前学的都是线性逻辑结构,接下来学习非线性逻辑结构线性结构中结点间具有惟一前驱、惟一后继的关系非线性结构中结点间的前驱后继关系不具有惟一性在树型结构当中,结点间是前驱惟一,后继不惟一,结点间是一对多的关系在图结构当中,结点间的前驱和后继关系均不惟一,结点间是多对多的关系树结构的用途:文件系统、编译系统、目录组织等方面1.树的定义及其基本术语(1)树的基本概念树:n个结点的有限集合...原创 2019-10-29 21:32:18 · 174 阅读 · 0 评论 -
(12)查找
在非数值运算问题中,数据存储量一般很大,为了在大量的信息中找到某些值,需要用到查找技术为了提高查找效率,需要对一些数据进行排序查找和排序的数据处理量几乎占80%以上,查找和排序的有效性直接影响到基本算法的有效性查找和排序是重要的处理技术1.查找的基本概念列表:由同一类型的数据元素(或者记录)构成的集合,可以利用任意数据结构实现关键字:数据元素的某个数据项的值,用它可以标识列表中的一个或...原创 2019-10-29 21:33:02 · 234 阅读 · 0 评论 -
(9)广义表
广义表也是线性表的一种推广被广泛应用于人工智能等领域的表处理语言LISP中在LISP语言中,广义表是一种最基本的数据结构1.广义表的概念线性表被定义为一个有限序列(a1,a2,a3,…,an),其中的元素是单个数据元素广义表也被定义为具有n个元素的有限序列,但是广义表的元素既可以是单个元素,也可以是广义表通常广义表的名字用大写字母表示广义表长度、子表、广义表表头、广义表表尾广义表是...原创 2019-10-29 21:31:46 · 333 阅读 · 0 评论 -
(8)数组
数组和广义表可以看成是一种扩展的线性数据结构特殊性不像栈和队列对数据元素的操作受限制反应在数据元素的构成上面1.数组的定义和运算高级语言一般都支持数组这种数据类型(1)数组的定义从逻辑结构上讲,数组可以看作一般线性表的扩充一维数组就是线性表,二维数组可以看作其数据元素就是一维数组的线性表多维数组可以看作:行向量线性表、列向量线性表(和线性代数很相似)数组中的每一个元素由一个值和...原创 2019-10-29 21:31:25 · 219 阅读 · 0 评论 -
(11)内部排序
当进行数据处理时,经常需要进行查找操作为了查得快找得准,通常要求待处理的数据按关键字大小有序排列,便于采用查找效率最高的查找法当今计算机上排序占用计算机CPU高达30%~50%,排序是计算机程序设计中一种基础性操作研究和掌握各种排序方法很重要1.排序的基本概念(1)排序的概念:记录序列、关键字序列、下标序列将有n个记录的序列按照关键字递增或者递减的关系进行排序,得到一个关键字有序的...原创 2019-10-29 21:32:41 · 301 阅读 · 0 评论 -
(7)串
计算机处理的对象分为数值数据和非数值数据,字符串是最基本的非数值数据字符串在语言编译、信息检索、文字编辑等中有着广泛的应用字符串是一种特定的线性表,特殊性在于组成线性表的每一个元素就是一个单字符1.串的基本概念字符串是由零个或者多个字符组成的有限序列,S=‘a1a2a3…an’(n>=0)S是字符串的名字,使用单引号括起来的字符序列是串的值字符串中的每个元素可以是字母、数字或者其...原创 2019-10-29 21:30:53 · 222 阅读 · 0 评论 -
(6)特定性线性表(队列)
1.队列的定义队列是另外一种限定性的线性表,只允许在表的一端插入元素,在另一端删除元素队列具有先进先出的特性允许插入的一端叫做队尾允许删除的一端叫做队头队列应用:操作系统的作业排队队头和队尾都是动态变化的2.队列的常用操作初始化队列(设置一个空队列)、判空、判满、进队、出队、取队头元素、队列置空、队列销毁3.队列的表示和实现(1)链式存储-链队列带头结点、队头指针、队尾指针...原创 2019-10-29 21:30:03 · 142 阅读 · 0 评论 -
(5)限定性线性表(栈)
在堆栈当中,用户只能在指定的一端插入和删除元素,具有先进后出的特性1.栈的定义栈作为一种限定性线性表,是将线性表的插入和删除运算限制仅仅在表的一端进行将允许进行插入和删除操作的一端称为栈顶(Top),栈顶的当前位置是动态变化的,由一个称为栈顶指针的位置指示器指示表的另外一端叫做栈底,没有元素叫做空栈插入元素叫做:入栈、进栈删除元素叫做:出栈、退栈比如进栈的顺序是:a1,a2,a3,a...原创 2019-10-29 21:30:24 · 584 阅读 · 0 评论 -
(4)线性表
线性表是最简单、最常用的一种数据结构线性表的特点:在数据元素的非空有限集合中,第一个元素没有直接前驱,最后一个元素没有直接后继集合当中的其他数据元素均有惟一的直接前驱和惟一的直接后继1.线性表的基本概念(1)线性表的逻辑结构线性表(Linear List):n个类型相同的数据元素的有限序列,n>=0比如:a1->a2->a3->a4->a5,数据元素...原创 2019-10-29 21:29:39 · 413 阅读 · 0 评论 -
(3)算法设计
1.算法定义(Algorithm)算法是规则的有限集合,是为了解决特定问题而规定的一系列操作2.算法的特点(1)有限性:在有先步骤之内正常结束,不能形成无穷循环(2)确定性:算法中的每一步都必须有确定的含义,不能有二义性(3)输入:有0个或者多个输入(4)输出:至少有一个输出或者多个输出(5)可行性:操作可以通过已经实现的基本原酸执行有限次完成有限性、确定性、可行性是最基本的要求...原创 2019-10-29 21:29:13 · 266 阅读 · 0 评论 -
(2)数据结构的内容
数据结构就是相互之间存在一种或多种特定关系的数据元素的集合1.逻辑结构数据元素之间的逻辑关系(1)集合结构结构中的数据元素之间除了属于同一个集合的关系外,没有其他任何的关系(2)线性结构数据结构中的元素之间存在着一对一的线性关系(3)树形结构数据结构中的元素存在着一对多的层次关系(4)图状结构/网状结构数据结构中的元素之间存在着多对多的任意关系逻辑结构的分类可以概括为下线...原创 2019-10-29 21:28:50 · 113 阅读 · 0 评论