数据结构与算法
文章平均质量分 68
zzerosk
这个作者很懒,什么都没留下…
展开
-
数据结构——线性表的Java实现
线性表的存储结构线性表:零个或多个数据元素的有限序列。元素 - 线性表中每一个节点包含一个元素。索引:表中的每一个元素都有一个确定的位置,称为元素的索引。在jdk中其实已经有提供线性表的实现——ArrayList,现在我们来自己实现一个ArrayList.首先定义一个元素类Elempublic class Elem { public int id; public String ...原创 2018-04-22 19:51:10 · 619 阅读 · 0 评论 -
数据结构——单链表的Java实现
前面我们讲了线性表的java实现。线性表的Java实现它是有缺点的,最大的缺点在于插入和删除时需要移动大量元素,当表很长时,对性能的损耗严重。今天来介绍表的链式存储结构——单链表。单链表的存储结构单链表:链表中的每一个节点由元素和对下一个节点的引用组成。指针域 - 每一个节点包含指向下一个节点的指针。节点 - 节点由元素和指向下一个节点的指针组成。链表在jdk中也有实现-LinkedList, 现...原创 2018-04-23 14:42:09 · 477 阅读 · 0 评论 -
数据结构——栈(Stack)的java实现
栈是限定仅在表尾进行插入和删除操作的表。我们把允许插入和删除的一端称之为栈顶(top), 另一端称之为栈底(bottom), 不含任何数据元素的栈称为空栈。栈由于它插入和删除只能在表尾的特性又被称为后进先出(Last In First Out)结构,简称LIFO结构。栈的插入操作,叫作进栈(Push),也叫压栈,入栈。栈的删除操作,叫作出栈(Pop)。由于栈是一种特殊的表,我们前面讲过线性表和链表...原创 2018-04-23 15:49:15 · 213 阅读 · 0 评论 -
栈的应用——运算表达式求值
我们来看一个栈比较常见的应用:数学表达式的求值。对于任意一个四则运算表达式,比如“9+(5-1)*3+8/2”。我们采用“从左到右,先乘除,后加减,先括号内,后括号外”的原则,口算就可以得出结果,但是计算机是如果算出它的值呢?后缀(逆波兰)表达式逆波兰表示法(RPN),是一种由波兰数学家Jan Łukasiewicz 1920年引入的数学表达式,在RPN中,所有操作符置于操作数的后面,因此也被称为...原创 2018-04-23 16:54:39 · 819 阅读 · 0 评论 -
数据结构——二叉树的存储结构(Java实现)
二叉树的定义二叉树(Binary Tree)是n(n≥0)个结点的有限集合,该集合或者为空集,或者由一个根结点和两颗互不相交的,分别称为根结点的左子树和右子树的二叉树组成。二叉树的定义也采用了递归,听起来有些绕,如果了解了树的结构的话,二叉树也可以定义为:二叉树是每个结点最多只有两个分支的树结构。下列图中均为二叉树: 注意:二叉树是不存在度大于2的结点,不是只有两棵子树,...原创 2018-04-25 21:11:41 · 4221 阅读 · 2 评论 -
数据结构——二叉树的遍历
二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。二叉树的遍历方式有很多,主要分为以下三种:1.二叉前序遍历规则:若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。注意这里的定义也采用了递归的方式,那么我们如果去理解呢,我们先看一个简单的例子:这是一个最简单的二叉树,我们按照前序遍历的原则,先根结点-A,再左...原创 2018-04-27 21:53:48 · 849 阅读 · 0 评论 -
数据结构与算法教程——App推荐
推荐一款数据结构与算法的App,是本人自己开发的,通过动画模拟演示的方式,更形象的解析数据结构与算法。 包含了以下分类:表线性表、链表、表的应用:多项式相加链表的插入 栈&队列栈和队列介绍、斐波那契数列、进制转换、迷宫求解、四则运算求解四则运算解析 树树的介绍、二叉树、二叉树的创建模拟和遍历模拟二叉树的中序遍历 查找顺序查找、二分查...原创 2018-09-23 10:57:35 · 9100 阅读 · 3 评论