
数据结构与算法
oJueQiang123456
这个作者很懒,什么都没留下…
展开
-
数据结构与算法-线性表
一、概述线性表是n个类型相同数据元素的有限序列,通常记作(a0, a1, a2 , ..., a(n-1))。 线性表特征:相同的数据类型、序列(顺序性)、有限。 生活案例:冰糖葫芦、多个学生分数、多个学生数据。二、线性表的存储结构顺序表特点:在内存中分配连续的空间,只存储数据,不需要存储地址信息。位置就隐含着地址。优点:节省存储空间,因为分配给数据的存储单元全用存放结点...原创 2019-01-12 17:17:08 · 450 阅读 · 1 评论 -
数据结构与算法-二叉树-遍历概念和算法
遍历(Traverse)就是按照某种次序访问树中的所有结点,且每个结点恰好只访问一次,也就是说,按照被访问的次序,可以得到由树中所有结点排成的一个序列。 树的遍历也可以看成是人为的将非线性结构线性化。 这里的”访问“是广义的,可以是对结点的各种处理,例如输出结点信息、更新结点的信息等。 在我们的现实中,并不正真的”访问“这些结点,而是得到一个结点的线性序列,已线性序列的形式输出。 将整...原创 2019-01-21 23:51:16 · 548 阅读 · 0 评论 -
数据结构与算法-栈和队列
一、栈概述:栈(stack)又称堆栈,它是运算受限的线性表。 其限制是仅允许在表的一端进行插入和删除操作,不允许在其它任何位置进行插入、查找删除等操作。 表中进行插入、删除操作的一端称为栈顶(top),栈顶保存的元素称为栈顶元素,相对的表的另一端称为栈底(bottom)。 当栈中没有数据元素时称为空栈。 向一个栈中插入元素称为进栈或入栈。 从一个栈中删除元素称为出栈或退栈。 由...原创 2019-01-16 08:46:09 · 454 阅读 · 0 评论 -
数据结构与算法-时间复杂度计算
一、方法根本没有必要计算时间频度,即使计算处理还要忽略常量、低次军和最高次剩的系数,所以可以采用如下简单方法:找出算法中的基本语句:算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。 计算基本语句的执行次数的数量级:只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次军正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并...原创 2019-01-09 11:50:31 · 1239 阅读 · 0 评论 -
数据结构与算法-算法复杂度简介
一、算法算法是指令的集合,是为解决特定问题而规定的一系列操作。它是明确定义的可计算过程,以一个数据集合为输入,并产生一个数据集合作为输出,简单来说算法就是计算机解题的过程。举例:如何求1+2+3+...100=? 算法1:依次相加 算法2:高斯算法:首尾相加*(100/2) 算法3:使用递归实现:sum(100)=sum(99)+100 sum(99)=sum(98)+99 .....原创 2019-01-09 08:52:50 · 209 阅读 · 0 评论 -
数据结构与算法-二叉树
一、概述二叉树:每个结点的度都不超过2的有序树,称为二叉树(binary tree)。 与树的递归定义类似,二叉树的递归定义如下:二叉树或者是一颗空树,或者是一颗由一个根结点和两颗互不相交的分别称为根的左子树和右子树所组成的非空树。 二叉树中每个结点的孩子数只能是0、1或2个,并且每个孩子都有左右之分。 以左孩子为根的树称为左子树,以右孩子为根的树称为右子树。 ...原创 2019-01-19 11:03:46 · 1261 阅读 · 0 评论 -
数据结构与算法-树
一、基本概念树(tree)是n(n>=0)个结点的有限集合它: 或者是一棵空树(n=0),空树中不包含任何结点。 或者是一颗非空树,此时有且仅有一个特定的称为根(root)的节点。 当 n>1 时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、...、Tm,其中每一个本身又是一棵树,并且称为根的子树(sub tree)。 如图:a是一颗空...原创 2019-01-19 10:13:56 · 317 阅读 · 0 评论 -
数据结构与算法-线性表-其它链表
一、双向链表概述:单链表的一个优点是结构简单,但是它也有一个缺点,既在单链表中只能通过一个结点的引用来访问其后续结点,而无法直接访问其前驱结点。 要在单链表中找到某个结点的前驱结点,必须从链表的首结点出发依次向后寻找,但是需要O(n)的时间复杂度。 为此我们可以扩展单链表的结点结构,使得通过一个结点的引用,不但能够访问其后续结点,也可以方便的访问其前驱结点。 扩展单链表结点结构的方法...原创 2019-01-13 15:24:24 · 160 阅读 · 0 评论 -
数据结构与算法-线性表-单链表
一、概述及其特点概述:链表是一系列的存储数据元素的单元,通过指针串接起来形成的,因此每个单元至少有两个域。 一个域用于数据元素的存储,另一个域是指向其它单元的指针。 这里具有一个数据域和多个指针域的存储单元通常成为结点(node)。举例:一种最简单的结点结构如图所示,它是构成单链表的基本结点结构。在结点中数据域用来存储数据元素,指针域用于指向下一个具有相同结构的节点,因为只有一个指针...原创 2019-01-13 00:04:20 · 271 阅读 · 0 评论 -
数据结构与算法-二叉树-简单实现
一、概述Node (结点类) BinaryTree (接口类) LinkBinaryTree (链表实现的二叉树类) Test (测试类)二、代码Node:public class Node { /** 内容 **/ private Object data; /** 左子树 **/ private Node leftChild; /** 右子树 **/ pr...原创 2019-01-27 17:08:24 · 228 阅读 · 0 评论