算法和数据结构
qq_37099362
这个作者很懒,什么都没留下…
展开
-
查找
线性表查找顺序查找示例1:在成绩中查询分数是100的第一个分数示例2:在学生中查询分数是100的第一个学生存储结构可以是顺序表,也可以是链表逐个比较查询,如果找到,返回数据或者索引,如果到最后也没有找到,返回null可以是在顺序表中,也可以是在链表中在各个节点查找概率相同情况下,默认查询长度为一半长度,所以时间复杂度是T(n) = O(n)/***功能:在分数中查询指定分数的...原创 2019-09-28 21:31:25 · 293 阅读 · 0 评论 -
图
图的基本概念:多对多关系图(graph)是一种网状数据结构,图是由非空的顶点集合和一个描述顶点之间关系的集合组成其形式化的定义如下Graph = (V, E)V = {x|x∈\in∈某个数据对象}E = {<u, v>| P(u, v) ∧\wedge∧(u, v∈\in∈V)}V是具有相同特性的数据元素的集合,V中的数据元素通常称为顶点(Vertex),E是两个顶点之...原创 2019-09-26 08:29:17 · 119 阅读 · 0 评论 -
二叉树的遍历算法
遍历(Traverse)就是按照某种次序访问树中的所有结点,且每个结点恰好访问一次也就是说,按照被访问的次序,可以得到由树中所有结点排成的一个序列树的遍历也可以看成是人为的将非线性结构线性化这里的“访问”是广义的,可以是对结点作各种处理,例如输出结点信息、更新结点信息等在我们的现实中,并不真正的“访问”这些结点,而是得到一个结点的线性序列,以线性表的形式输出将整个二叉树看做三部分:...原创 2019-09-25 10:21:46 · 152 阅读 · 0 评论 -
树和二叉树
树树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系父子关系在书的结点之间建立了一个层次结构树的结点包含在一个数据元素以及若干指向其子树的若干分支在这种层次结构中又一个结点具有特殊的地位,这个结点称为该树的根结点,或简称为树根我们可以形式地给出树的递归定义如下:树(tree)是n(n>=0)个结点的有限集。它或者是一棵空树...原创 2019-09-24 21:58:10 · 142 阅读 · 0 评论 -
栈和队列
栈栈(stack)又称堆栈,它是运算受限的线性表其限制是仅允许在表的一端进行插入和删除操作,不允许在其他任何位置进行插入、查找、删除等操作表中进行插入、删除操作的一端称为栈顶(top),栈顶保存的元素称为栈顶元素相对的,表的另一端称为栈底(bottom)当栈中没有数据元素时称为空栈向一个栈插入元素又称为进栈或入栈从一个栈中删除元素又称为出栈或退栈由于栈的插入和删除操作仅在栈顶进行...原创 2019-09-24 20:34:54 · 74 阅读 · 0 评论 -
其他类型的链表
双向链表单链表的一个优点是结构简单,但是它也有一个缺点,即在单链表中只能通过一个结点的引用访问其后续结点,而无法直接访问其前驱结点要在单链表中找到某个结点的前驱结点,必须从链表的首结点出发依次向后寻找,但是需要O(N)时间为此,我们可以扩展单链表的结点结构,使得通过一个结点的引用,不但能够访问其后续结点,也可以方便的访问其前驱结点扩展单链表结点结构的方法是,在单链表结点结构...原创 2019-09-21 08:37:58 · 66 阅读 · 0 评论 -
单链表的实现
单链表及其结点链表是一系列的存储数据元素的单元通过指针串接起来形成的,因此每个单元至少有两个域。一个域用于数据元素的存储,另一个域是指向其他单元的指针。这里具有一个数据域和多个指针域的存储单元通常称为结点。一种最简单的结点结构如图所示,它是构成单链表的基本结点结构。在结点中数据域用来存储数据单元,指针域用于指向下一个具有相同结构的结点。因为只有一个指针结点,称为单链表单链表的一个重要特性...原创 2019-09-21 04:33:02 · 218 阅读 · 0 评论 -
顺序表的实现
/***线性表接口*和存储结构无关*/public interface List{ //返回线性表的大小,即数据元素的个数 public int size(); //返回线性表中序号为i的数据元素 public Object get(int i); //如果线性表为空返回true,否则返回...原创 2019-09-20 09:03:19 · 94 阅读 · 0 评论 -
线性表
线性表(linear list)线性表是n个类型相同数据元素的有限序列,通常记作(a0a_0a0,a1a_1a1,…ai−1a_{i-1}ai−1,aia_iai,ai+1a_{i+1}ai+1,…an−1a_{n-1}an−1)相同数据类型在线性表的定义中,我们可以看到从a0a_0a0到an−1a_{n-1}an−1的n个元素是具有相同属性的元素。比如说可以都是数字,例...原创 2019-09-19 04:21:49 · 313 阅读 · 0 评论 -
数据结构基本概念
为什么学习数据结构?高级计算机程序设计的理论指导数据结构可以采用不同的语言来描述和实现写项目遇到复杂的情况时,应该采取哪种数据结构来组织我们的数据提升编程能力面试中经常问到有哪些数据结构?线性表栈队列(字符)串数组广义表树二叉树图学习数据结构的四种境界:听懂理论、听懂算法思路完成主要数据结构基本算法的实现完成更多数据结构更多算法的实现融会贯通、举一...原创 2019-09-18 22:18:31 · 265 阅读 · 0 评论 -
算法基本概念
算法(algorithm)是指令的集合,是为解决特定问题而规定的一系列操作它是明确定义的可计算过程,以一个数据集合作为输入,并产生一个数据集合作为输出一个算法通常来说具有一下五个特性:1)输入:一个算法应该以待解决的问题的信息作为输入2)输出:输入对应指令集处理后得到的信息3)可行性:算法是可行的,即算法中的每一条指令都是可以实现的,均能在有限的时间内完成4)有穷性:算法执行的指令...原创 2019-09-18 20:57:49 · 920 阅读 · 0 评论 -
排序
什么是排序排序(sorting)的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列其确切定义为:假设有n个数据称元素序列{R1,R2,…,Rn},其相应关键字的序列是{K1,K2,…Kn},通过排序要求找出下表1,2,…,n的一种排列p1,p2,…,pn,使得相应关键字满足如下的非递减(或非递增)关系: Kp1≤\leq≤ Kp2 ≤\leq≤…≤\leq≤Kpn。这样,就...原创 2019-09-29 06:36:07 · 143 阅读 · 0 评论