数据处理
搁浅的素颜
算法+数据结构=程序
展开
-
数据、数据元素和数据对象
数据是客观事物的符号表示,是对现实世界的事物采用计算机能够识别、存储和处理的形式进行描述的符号的集合。计算机能处理多种形式的数据。例如,科学计算软件处理的是数值数据;文字处理软件处理的是字符数据;多媒体软件处理的是图像、声音等多媒体数据。数据元素是数据的基本单位。在计算机程序中,数据元素通常是作为一个整体来处理的。一个数据元素又可以由若干个数据项组成。数据项包括两种:一种是初等项,是数原创 2016-10-13 10:02:43 · 4741 阅读 · 0 评论 -
单链表
单链表是最简单的链表结构,但也是最基本的链表结构。一个链表由若干个链表结点连接而成。在单链表中,每个链表结点包括两个域:用来存储数据的数据域和用来连接下一个链表结点的指针域。为了访问到链表中的结点,每个1、基本概念链表有一个相关联的指针,该指针指向链表中的第一个结点,这个指针称为头指针。通过指针head可以访问到表头结点,通过前一个结点的指针可以访问到后一个结点,当前结点指针为原创 2016-12-26 17:36:13 · 780 阅读 · 0 评论 -
循环链表
在前面介绍的单链表中,表尾结点指针域值为空,判断是否已经到达表尾,只需判断当前结点的指针是否为空。从已经讨论过的链表类的实现可以看到,在对这种形式的单链表进行操作时,需要增加大量复杂的判断程序代码,以确定表是否为空或已经到达表尾,而在表尾进行操作时,为了维护表尾指针rear的正确性,也需要增加不少代码。为了克服上述单链表的固有缺陷,引入一种新的单链表,称为循环链表。循环链表是一种附加头结点的单原创 2016-12-26 17:50:10 · 846 阅读 · 0 评论 -
双链表
对于单链表或循环链表,从表头结点开始扫描,可以遍历到链表中的每个结点,而循环链表可以从任何结点出发对各个结点进行遍历。但它们都有一个共同的缺陷,就是无法快速地访问结点的前驱。例如,为了删除结点p,必须首先找到p的前驱结点,这需要从表头开始查找链表,直到某个结点q的后继等于p,q即p的前驱,显然,这是极不方便的。为了支持双向快速访问结点,引入了双向链表的概念。在双向链表中,每个结点含有两个指针域原创 2016-12-26 19:31:51 · 420 阅读 · 0 评论 -
查找
查找是数据处理领域最常用的一种重要运算,也称为检索。查找的对象可以是线性表,也可以是复杂的树状结构和文件结构。1、基本概念所谓查找就是在给定的数据结构中搜索满足某种条件的结点。最常见的查找是给出一个值,在数据结构中找出关键字等于指定值的结点。例如,在学生成绩表中,查找指定学号的学生成绩,学号是学生成绩表地 关键字,因为每个学生都有唯一的学号。查找的结果有两种情况,第一种情况是学生成绩表中有原创 2016-12-26 21:10:40 · 349 阅读 · 0 评论 -
树和二叉树
1、树的概念2、二叉树3、树(树林)、二叉树的遍历4、抽象数据类型BinaryTree以及类BinaryTree5、二叉树的遍历算法原创 2016-12-30 10:13:16 · 603 阅读 · 0 评论 -
排序
排序是数据结构的一种重要运算。1、基本概念在讨论排序的概念之前,首先引入排序码的概念。所谓排序码是结点中的一个或多个字段,其值作为排序运算中的依据。排序码可以是关键字,这时排序即按关键字对文件进行排序;排序码也可以不是关键字,这时可能有多个结点的排序码具有相同的值,因而排序结果就可能不唯一。排序码的数据类型可以是整数,也可以是实数、字符串,乃至复杂的组合数据类型。习惯上,在排序中将原创 2016-12-26 20:43:05 · 612 阅读 · 0 评论 -
动态数据结构
所谓动态数据结构,是指在运行时刻才能确定所需内存空间大小的数据结构,动态数据结构所使用的的内存称为动态内存。动态内存的使用有一定的危险,必须遵守一定的规则。动态申请的内存在不需要时必须及时释放,如果不断地申请动态内存而不加以释放,将导致内存资源的枯竭。 c++处理动态内存提供了一对操作符new和delete。new操作符用于动态申请内存,而delete操作符则用来释放动态申请的内原创 2016-12-19 12:06:24 · 7389 阅读 · 0 评论 -
链表
基于顺序存储结构,内存的存储密度高,当结点等长时,可以随机存储表中的结点。但是,在顺序表中插入和删除结点时,需要对表中结点进行移动,以保持结点的连续存储,效率低下。特别的,当插入结点不断增加,所需要的存储空间大于顺序表的存储空间时,尽管系统还有足够的空闲内存,也将导致插入操作的失败。一般地,当需要动态地改变存储空间的大小以满足实际应用需求时,顺序存储是不合适的。为了克服顺序存储方式的固有缺陷,原创 2016-12-19 10:22:02 · 243 阅读 · 0 评论 -
队列
与栈一样,队列也是一种操作受限的线性表。队列的插入操作只允许在表尾一端进行,而删除操作只允许在表头一端进行。队列根据存储方式的不同,可分为顺序队列和链式队列。队列的逻辑结构是线性表,与栈一样,也可与数组相同的顺序存储方式存储队列。队列中的数据元素类型相同,称为队列元素。往队列里插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进原创 2016-12-15 10:11:03 · 746 阅读 · 0 评论 -
数据结构
在任何数据对象中,数据元素都不是孤立存在的,他们相互之间存在一种或多种特定的关系,这种关系称为结构。数据的结构是指数据的组织形式,由数据对象及该对象中数据元素之间的关系组成。数据结果与可以描述为一个二元组: Data Structure=(D,R) 其中:D是数据对象,为数据元素的有限集;R是该数据对象中所有数原创 2016-10-13 10:23:19 · 349 阅读 · 0 评论 -
数据结构的分类
数据的逻辑结构可分为两大类:一类是线性结构,一类是非线性结构。线性结构中有且仅有一个开始结点和一个终端结点,并且所有的结点最多只能有一个前驱和一个后继。线性表是典型的线性结构。非线性结构的一个结点可能有多个前驱和后继。如果一个结点最多只有一个前驱,而可以有多个后继,这种结构就是树。树是最重要的非线性结构之一。如果对结点的前驱和后继的个数不做限制,这种结构就是图。图是最一般的非线性结构。数据的存原创 2016-10-20 09:28:30 · 4145 阅读 · 0 评论 -
抽象数据类型
两种软件设计方法:面向过程,面向对象。用面向对象设计方法生成的软件,测试和调试效率高,易于修改,质量可靠,而且便于重用。之所以面向对象的软件设计方法优于传统的软件设计方法,主要原因是面向对象的软件设计方法采用了抽象数据类型的描述方式,实现了数据抽象和信息隐蔽。原创 2016-11-01 15:47:29 · 1356 阅读 · 0 评论 -
算法和算法分析
通常人们将算法定义为一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算系列。 一个算法应当具有以下特性:输入,输出,确定性,有穷性,可行性。 算法的描述有多种方法,如自然语言方式、图形方式、表格方式等,这里用C++程序语言来描述算法。 把一个具体问题的功能需求转变为一个算法,使用的方法是自顶向下、逐步求精的结构化程序设计方法。原创 2016-11-09 14:29:15 · 695 阅读 · 0 评论 -
数据挖掘、机器学习、深度学习的区别
作者:王火火链接:http://www.zhihu.com/question/30557267/answer/48623150来源:知乎著作权归作者所有,转载请联系作者获得授权。数据挖掘:也就是data mining,是一个很宽泛的概念。字面意思就是从成吨的数据里面挖掘有用的信息。这个工作BI(商业智能)可以做,数据分析可以做,甚至市场运营也可以做。你用excel分析分析数据,转载 2016-10-07 18:17:33 · 946 阅读 · 0 评论 -
线性表
线性表是n个数据元素(也称结点或表元素)组成的有限序列k0,k1,...,kn-1,其中:k0为开始结点,没有前驱,仅有一个后继;kn-1为终端结点,没有后继,仅有一个前驱;其他结点ki(0线性表中的各个数据元素并不要求是同一种数据类型。为描述简单起见,只讨论数据类型相同的数据元素组成的线性表,这种数据元素相同的线性表又称为数组和向量。数据元素不同类型的线性表可通过建立索引表后,转化为数据元素原创 2016-11-19 16:49:03 · 655 阅读 · 0 评论 -
线性表的类表示
线性表的数据元素可以顺序存储或链接存储,也可以散列存储。必要时,还可以为数据元素建立索引表,进行索引存储。用C++的类来表示线性表,既表示了线性表的逻辑结构,也体现了线性表的存储结构,并且定义和实现了线性表所要求的基本运算。原创 2016-11-19 19:54:37 · 309 阅读 · 0 评论 -
数组
在实际应用中,数组是以表的形式出现的,数组中的元素是同一类型的。科学与工程计算领域中数组的元素通常是数值类型,非数值计算领域中数组的元素通常是用户自定义类型。一维数组又称为向量,二维数组又称为矩阵。多维数组通过行优先或列优先描述,可以映射成一维数组。数组是由同一种数据类型的数据元素组成的线性表,因此数组的逻辑结构与一般线性表的逻辑结构是相同的。组成数组的数据元素可以是初等项,这是最简单的情原创 2016-12-14 10:54:14 · 530 阅读 · 0 评论 -
栈
栈是一种特殊的线性表。在逻辑结构和存储结构上,栈和一般的线性表没有区别,但对允许的操作却加以限制,栈 的插入和删除操作只允许在表尾一端进行,因此栈是操作受限的线性表。栈可以顺序存储,也可以链接存储。顺序存储的栈称为顺序栈。栈的逻辑结构是线性表,在这里采取顺序的存储结构,可以用一个与数组相同的顺序存储方式存储栈。栈中数据元素的类型相同,称为栈元素。往栈里插入一个元素称为进栈原创 2016-12-14 15:05:56 · 448 阅读 · 0 评论 -
数据结构(c++描述)
一、两种软件设计方法:面向对象、面向过程二、顺序表1. 线性表2.数组3.栈4.队列三、链表1.动态数据结构2.单链表3.循环链表4.双链表四、排序1.插入排序2.选择排序3.交换排序4.分配排序5.归并排序6.外部排序五、查找1.顺序查找2.折半查找3.分块查找4.字符串的模式匹配5.散列查找六、树和二叉树1.树和二叉树的概念2.树和二叉树的遍历3原创 2017-06-17 10:56:37 · 3632 阅读 · 1 评论