摘要: 阅读全文
posted @ 2017-10-15 08:36 2016java 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 最优二叉树 1.树的路径长度 树的路径长度是从树根到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。 2.树的带权路径长度(Weighted Path Length of Tree,简记为WPL) 结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。 结点的带 阅读全文
posted @ 2017-10-15 08:26 2016java 阅读(927) 评论(0) 推荐(0) 编辑
摘要: 线索二叉树 1.定义 n个结点的二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。 这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同 阅读全文
posted @ 2017-10-15 08:15 2016java 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。 二叉树的定义 1.二叉树的递归定义 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不 阅读全文
posted @ 2017-10-13 17:16 2016java 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 栈与队列 简介 堆栈和队列都属于线性结构,是两种在运算上受到某些限制的特殊线性表,他们比一般线性表更简单,被广泛应用于类型的程序设计中,可以用来存放许多中间信息,在系统软件设计以及递归问题处理方面都离不开堆栈和队列。 栈 栈的操作原则是:先进后出,后进先出 二、栈的特点 根据栈的定义可知,最先放入栈 阅读全文
posted @ 2017-10-13 17:13 2016java 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 线性表 线性表的基本概念 1.线性表的定义: 线性表(linear list)是具有相同类型的n(n>=0)个数据元素a0,a1,...an-1 组成的有限序列。 其中n为线性表的长度,当n=0,时成为空线性表,n>0,成为非空表 在数学上,表现为:数据之间具有线性关系,一对一,一对多等 2. 线性 阅读全文
posted @ 2017-10-13 17:12 2016java 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 字符串模式匹配指的是,找出特定的模式串在一个较长的字符串中出现的位置。 朴素的模式匹配算法 很直观的可以写出下面的代码,来找出模式串在一个长字符串中出现的位置。 /* 朴素的模式匹配算法 功能:字符串的模式匹配 参数: s:目标串 p:模式串 pos:开发匹配的位置 返回值: 匹配成功,返回模式串在 阅读全文
posted @ 2017-10-10 23:06 2016java 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 七、查找 概述 查找表:由同一类型的数据元素(或记录)构成的集合。 静态查找表 静态查找是指在静态查找表上进行的查找操作,在查找表中满足条件的数据元素的存储位置或各种属性。静态查找表的查找算法主要有: 顺序查找:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值k进行比较,若当前扫描到的关 阅读全文
posted @ 2017-10-08 11:14 2016java 阅读(879) 评论(0) 推荐(0) 编辑
摘要: 六、图 图的概念 图是一种较线性表和树更为复杂的数据结构,在图形结构中,结点之间关系可以是任意的,图中任意两个数据元素之间都可能相关。 有向图和无向图 若无向图中的每两个顶点之间都存在着一条边,则称该无向图称作完全无向图;显然完全无向图中包含着e=n(n-1)/2条边。若有无向图中的每两个顶点之间都 阅读全文
posted @ 2017-10-08 11:12 2016java 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 五、树 树的定义 树的逻辑表示:树形表示法、文氏图表示法、凹入表示法、括号表示法。 结点:表示树中的元素,包括数据项及若干指向其子树的分支。 结点的度:结点拥有的子树树;树的度:一棵树中最大的结点度数 叶子结点:度为0的结点;分支结点:度不为0的结点;孩子:结点子树的根称为该结点的孩子;双亲:孩子结 阅读全文
posted @ 2017-10-08 11:10 2016java 阅读(1157) 评论(0) 推荐(0) 编辑