
【数据结构】学习笔记
爬金字塔的人
5年的图像处理和计算机视觉经验
多个工业上缺陷检测项目的开发经验
多个结合视觉的工业自动化大型设备研发经验
展开
-
【排序】选择排序(直接选择排序、堆排序)
选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。 常用的选择排序方法有直接选择排序和堆排序。直接选择排序(Straight Selection Sort)1、直接选择排序的基本思想 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:原创 2014-04-18 22:54:42 · 874 阅读 · 0 评论 -
【线性表】链式存储结构之:单链表
链表 ,采用链式存储结构存储数据元素的线性表链式存储方法用一组任意的存储单元来存放线性表的数据元素(这组存储单元既可以是连续的,也可以是不连续的)链表的逻辑关系(1)为了能正确表示数据元素间的逻辑关系,对于每个数据元素来说,除了储存本身的信息外,还必须存储指示其后继结点的位置信息,这两部分信息组成数据的一个结点。它包括两个域:数据域(data)和指针域(原创 2014-05-18 21:52:04 · 2128 阅读 · 0 评论 -
【栈和队列】队列
队列的定义及基本运算1、定义 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表队列示意图 (1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear)。 (3)当队列中没有元素时称为空队列。 (4)队列亦称作先进先出(First In First Out)的线性表,简称为FIF原创 2014-05-21 21:44:04 · 657 阅读 · 0 评论 -
【栈和队列】栈
栈(stack),一种特殊的线性表栈的定义栈是一种限制只能在表尾进行插入或删除的线性表。表尾称为栈顶,表头称为栈底。栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。栈的基本运算(1)InitStack(S) 构造一个空栈S。原创 2014-05-20 18:24:10 · 810 阅读 · 2 评论 -
【线性表】顺序表和链表的比较
比较如前面所说,数据结构是存储和组织数据的一种方式,以便于对数据进行访问和修改。没有哪一种数据结构可以适用于所有的用途和目的。下面看看,在实际应用中,顺序表和链表应该选择哪个。基于空间的考虑: 内存分配问题:顺序表属于静态分配,必须实现知道所需的内存空间大小。但是,如果分配内存过大,将造成空间的浪费,如果分配过小,将内存空间溢出机会变大。所以,如果难以估计原创 2014-05-19 21:54:24 · 1039 阅读 · 0 评论 -
【线性表】顺序存储结构之:顺序表
顺序表,用顺序方法存储的线性表也叫做顺序表顺序表的定义如果一个线性表用一组连续的存储单元依次存储线性表的数据元素,那么这个表就是顺序表。(类似数组)顺序表的逻辑关系数据元素在计算机内“物理位置相邻”【例】如果用 address(ai)表示数据元素ai的存储位置,L表示数据元素占用的存储单元,则:address(ai) = address( a1 ) + (i-1原创 2014-05-18 19:45:55 · 1446 阅读 · 0 评论 -
【线性表】链式存储结构之:循环链表
循环链表(Circular Linked List)是一种首尾相接的单链表。1、循环链表(1)单循环链表——在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点即可。(2)多重链的循环链表——将表中结点链在多个环上。 单循环链表示意图:注意: 循环链表的操作和线性表基本一致,只是判断空链表的条件是head==he原创 2014-05-18 21:52:55 · 909 阅读 · 0 评论 -
【线性表】链式存储结构之:双链表
双链表(Double Linked List)1、双向链表ding 双(向)链表中有两条方向不同的链,即每个结点中除next域存放后继结点地址外,还增加一个指向其直接前驱的指针域prior。双链表示意图注意:双链表由头指针head惟一确定的。带头结点的双链表的某些运算变得方便。将头结点和尾结点链接起来,为双(向)循环链表。原创 2014-05-18 21:53:38 · 739 阅读 · 0 评论 -
【线性表】最常用的数据结构:线性表
线性表(Linear List)是最常用且最简单的一种数据结构(有数据库知识的同学应该比较了解)线性表的定义线性表是由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。数据元素的个数n定义为表的长度(n=0时称为空表)。将非空的线性表(n>0)记作:(a1,a2,…,an)数据元素ai(1≤i≤n)只是个抽象符号,其具体含义在不同情况下可以不原创 2014-05-18 19:44:14 · 1081 阅读 · 0 评论 -
【数据结构】什么是数据结构?
什么是数据结构?原创 2014-05-16 14:45:47 · 1656 阅读 · 0 评论 -
【树】线索二叉树概念
线索二叉树概念1.定义 n个结点的二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。 这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树转载 2014-04-11 18:56:24 · 2192 阅读 · 0 评论 -
【排序】归并排序
归并排序(Merge Sort)是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。两路归并算法1、算法基本思路 设两个有序的子文件(相当于输入堆)放在同一向量中相邻的位置上:R[low..m],R[m+1..high],先将它们合并到一个局部的暂存向量R1(相当于输出堆)中,待合并完成后将R1复制回R[low..high]中。(1原创 2014-04-21 19:56:46 · 604 阅读 · 0 评论 -
【树】二叉树
二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树的定义 1.二叉树的递归定义 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二转载 2014-04-11 17:10:52 · 652 阅读 · 0 评论 -
【排序】排序的基本概念
排序(sort)或分类 所谓排序,就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。其确切定义如下: 输入:n个记录R1,R2,…,Rn,其相应的关键字分别为K1,K2,…,Kn。 输出:Ril,Ri2,…,Rin,使得Ki1≤Ki2≤…≤Kin。(或Ki1≥Ki2≥…≥Kin)。1.被排序对象--文件 被排序的对象--文件由一组记录组成。转载 2014-04-11 19:28:19 · 636 阅读 · 0 评论 -
【树】树的概念
简介树形结构是一类非常重要的非线性结构,它可以很好地描述客观世界中广泛存在的具有分支关系或层次特性的对象,因此在计算机领域里有着广泛应用,如操作系统中的文件管理、编译程序中的语法结构和数据库系统信息组织形式等。本章将详细讨论这种数据结构,特别是二叉树结构。原创 2014-04-11 16:26:35 · 834 阅读 · 0 评论 -
【排序】插入排序(直接插入排序、希尔排序)
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。本节介绍两种插入排序方法:直接插入排序和希尔排序。直接插入排序基本思想1、基本思想 假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i原创 2014-04-11 19:43:06 · 706 阅读 · 0 评论 -
【树】遍历二叉树
遍历概念 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。遍历方案1.遍历方案 从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种转载 2014-04-11 18:11:01 · 625 阅读 · 0 评论 -
【排序】交换排序(冒泡排序、快速排序)
交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。冒泡排序1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的原创 2014-04-11 22:01:57 · 977 阅读 · 0 评论 -
【栈和队列】栈和队列的基本应用(C++版)
【栈和队列】栈和队列的应用(C++版)原创 2014-05-23 14:11:35 · 4097 阅读 · 0 评论