
Data Structures & Algorith
Francis-Yu
这个作者很懒,什么都没留下…
展开
-
折半查找
折半查找思想:在一个有序的数组(int型)中,要快速实现查找一个元素,可以用折半的思想。 1.先获取min,max,mid 2.获取数组为角标为mid的值进行和key比较,从而实现移动min和max,min和max发了生了变化,mid也会随着变化。 3.跳出循环的条件是min>max或者arr【mid】=key。public static int halfSearc原创 2011-11-26 14:20:23 · 584 阅读 · 0 评论 -
二叉树的定义及其相关概念
二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的,分别称为根结点的左子树和右子树的二叉树组成。二叉树的特点1.每个结点最多有两颗子树,所有二叉树中不存在度大于2的结点。2.左子树和右子树是有顺序的,次序是不能任意颠倒。3.即使树中某结点只有一颗子树,也要分区它是左子树还是右子树。原创 2012-11-19 17:19:23 · 1313 阅读 · 0 评论 -
树的定义和相关概念
树(Tree)是n(n>=0)个结点的有限集。n=0时成为空树。在任意一颗非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,........Tm,其中每一个集合本身又是一颗树,并且称为根的子树(subTree). 对于树的定义还需要强调两点:1.n>0时,根结点是唯一的,不可能存在多个根结点。原创 2012-11-19 16:35:37 · 1058 阅读 · 0 评论 -
串的定义与实现
串(string)是由零个或多个字符组成的有限序列,又名叫字符串。一般记为 s="a1a2a3........an"(n>=0),其中s是串的名称,用双引号括起来的字符系列是串的值。ai(1 串的大小比较:s="a1a2.........an" t="b1b2.......bn"1.当且仅当n=m,且a1=b1,a2=b2,........an=bn时,s=t。原创 2012-11-19 15:10:32 · 834 阅读 · 0 评论 -
单链表链式存储结构的读取
从头开始找,找到第i个元素为止。这个算法的复杂度取决于i的位置。最坏的情况下时间复杂度是O(n).单链表的插入操作单链表的删除操作原创 2012-11-16 15:22:51 · 887 阅读 · 0 评论 -
单链表的创建和删除
单链表很散,是一种动态的结构,它所占用的空间大小和位置不需要预先分配,可以根据需求及时生成。单链表的创建由空表慢慢的随着插入元素而增大。主要由头插法和尾插法。单链表的整表删除单链表结构和顺序存储的优缺点原创 2012-11-16 15:42:48 · 754 阅读 · 0 评论 -
循环链表和双向链表
循环链表:将单链表中的终端结点的指针端由空指针指向头结点,就使整个单链表行程一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。循环链表解决了从单链表中的任意一结点找到单链表中的任意一结点。双向链表:在单链表的每个结点中,在设置一个指向其前驱的结点的指针域。所以在双向链表的每个结点中,都有两个指针域,一个指向直接后继,一个指向直接前驱。双向链表的插入操作:原创 2012-11-16 16:22:17 · 1103 阅读 · 0 评论 -
线性表的链式存储结构
为了表示每个数据元素ai和与其直接后继数据元素ai+1之间的逻辑关系,对数据元素ai来说,除了存储本身的数据信息来说,还需要存储一个指示其直接后继的信息(即直接后继的存储位置)。我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。这两部分信息组成元素ai的存储映像,称为节点(Node)。 n个结点(ai的存储映像)连接成一个链表,即为线性表(a1,a2,....原创 2012-11-16 15:01:22 · 1029 阅读 · 0 评论 -
栈的定义和存储以及算法实现
栈--------仅限定在表尾进行插入和删除操作的线性表,我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(先进后出)(last in first out)的线性表,简称FIFO结构。 主意:1.栈是一个线性表,栈元素具有线性关系,即前驱后继关系。表尾(栈顶)进行插入和删除操作,不是栈底。原创 2012-11-16 17:15:22 · 1103 阅读 · 0 评论 -
逻辑结构和物理结构
一.逻辑结构 数据对象中数据元素之间的相互关系。逻辑结构分为四种:1.集合结构:集合结构中的数据元素出了同属于一个集合外,它们之间没有其他的关系。各个数据元素是平等的,它们的共同属性就是同属于一个集合。2.线性结构:线性结构中的数据元素之间是一对一的关系。3.树形结构:树形结构中的元素之间存在着一种一对多的关系。4.图形结构:图形结构中的原创 2012-11-09 11:42:03 · 1655 阅读 · 0 评论 -
数据结构基础
(一)线性表:零个或多个数据元素的有限序列。 元素之间是有顺序的。(二)线性表特点 在数据元素的非空有限集中: (1)存在唯一的一个被称做“第一个”的数据元素;(2)存在唯一的一个被称作“最后一个”的数据元素;(3)除第一个之外,集合中的每个数据元素均只有一个前驱;(4)除最后一个之外,集合中的每个数据元素原创 2011-11-28 21:20:28 · 610 阅读 · 0 评论 -
队列的存储及实现
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(FIFO)的线性表。允许插入的一端称为队尾,允许删除的一端称为队头。队列也是线性表,同样具有线性表的各种操作,只不过插入数据只能在队尾进行,删除数据只能在队头进行。队列的顺序存储结构:front指针指向队头元素,rear指针指向队尾元素的下一个位置。假溢出的情况如下:原创 2012-11-19 14:57:23 · 1688 阅读 · 0 评论