数据结构与算法(JAVA描述)
文章平均质量分 76
LiuXudongHnu
这个作者很懒,什么都没留下…
展开
-
线性表(JAVA描述)
线性表是一种基本的数据结构,线性表在计算机中可以用顺序存储和链式存储两种存储结构来表示。其中,用顺序存储结构表示的线性表称为顺序表,用链式存储结构表示的称为链表。其中,链表又分为单链表、双向链表、循环链表。线性表结构简单,其长度可以动态的增长或减少、可以对线性表中任何数据元素进行访问、数据元素的插入和删除操作可以在线性表中的任何位置进行、求线性表中指定元素的前驱和后继。因此我们可以构造一个接口来:原创 2017-03-29 16:15:28 · 640 阅读 · 0 评论 -
栈(JAVA描述)
栈是一种特殊的线性表,栈中的数据元素以及数据元素间的逻辑关系与线性表相同,两者区别在于:线性表的插入和删除操作可以在表的任意位置进行,而栈的插入和删除操作只允许在表的尾端进行。其中,允许进行插入删除操作的叫做栈顶、另一端叫做栈底。因此,栈又称为先进后出的线性表(LIFO)。因为栈是一种特殊的线性表,所以根据存储结构也可以把栈分为顺序(顺序存储结构)栈和链(链式存储结构)栈。定义栈接口代码如下:原创 2017-03-29 20:53:15 · 698 阅读 · 0 评论 -
队列(JAVA描述)
队列是一种特殊的线性表,其特性体现在队列只允许在表尾插入数据元素,在表头删除元素,所以队列是一种操作受限的线性表,具有先进先出的特点。允许进行插入的一端称为队尾,允许进行删除的一端称为队首。队列也分为顺序和链式两种存储结构。如下为队列接口的代码:public interface IQueue { public void clear(); //清空队列的操作 public原创 2017-03-30 20:28:38 · 1533 阅读 · 0 评论 -
树(JAVA描述)
在线性结构中数据元素之间的逻辑关系为一对一的线性关系,而在树形结构中,数据元素之间具有一对多的逻辑关系,它反应了数据元素之间的层次关系,和一个数据元素可以有多个后继但只能有一个前驱的特点。 树:有n个节点所构成的有限集合,当n=0时,称为空树。当n>0时,n个结点满足以下条件:1)有且仅有一个称为根的节点。2)其余结点可分为m个互不相交的有限集合,且每一个集合又构成一棵树,这棵树称原创 2017-04-05 15:16:41 · 657 阅读 · 0 评论 -
树、森林与二叉树的转换
将树转换为二叉树的步骤:1、加线。在所有兄弟结点之间加一条连线。2、去线。对树中的每一个结点,只保留它与第一个孩子结点的连线,删除它与其他孩子结点之间的连线。3、层次调整。以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。注意:第一个孩子是二叉树结点的左孩子,兄弟转换过来的孩子是结点的右孩子。森林转换为二叉树:森林是有若干颗树构成的。完全可以理解为:森林中原创 2017-04-10 11:04:41 · 703 阅读 · 0 评论