![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
吕系小
正在找Java实习的应届生,联系方式gd_cz_fan@163.com
展开
-
二叉树实现先序遍历(迭代版)
二叉树实现二叉树实现代码先序遍历顺序 首先访问当前节点 其他访问左子树(如果存在) 最后访问右子树(如果存在) 先序遍历图解先序遍历代码思路 先序遍历可分解为两段 沿最左侧通路自顶而下访问各节点 借助辅助栈,将访问的节点放入栈中,方便后续自下而上的遍历 自底而上遍历对应的右子树 当右子树中存在左子树时,继续进入左子树向下访问 先序遍历代码//先序遍历 public ArrayList<原创 2017-10-07 00:35:20 · 667 阅读 · 0 评论 -
Java实现二叉树
关于此二叉树 此版本的二叉树存在一些缺陷 没有实现对高度、规模更新 树节点采用私有内部类形式,会造成一些操作上的麻烦。 先序遍历详解 中序遍历详解 二叉树的实现import java.util.ArrayList; import java.util.LinkedList;@SuppressWarnings("unused") public class BinaryTree<E> { p原创 2017-10-06 13:28:41 · 376 阅读 · 0 评论 -
Java实现简单图数据结构
图所谓图(graph),可定义为G =(V,E)。其中,集合V中的元素称为顶点(vertex);集合E中的元素分别对应于V中的某一对顶点(u,v),表示它们之间存在某种关系,故亦称作边(edge)。图实现的Github链接,该版本使用邻接表实现图。广度优先搜索自顶点S的BFS搜索,将首先访问s;再依次访问s所有尚未访问到的邻居;再按后者被访问的先后次序,逐个访问它们的邻居;…;如此不断。在所有已访问原创 2017-11-13 11:06:33 · 376 阅读 · 0 评论 -
二叉搜索树
完整实例的GitHub地址https://github.com/lvxixiao/DSA顺序性任一节点r的左(右)子树中,所有节点均小于(大于)r。中序遍历序列任何一棵二叉搜索树,其中序遍历序列单调非降。查找算法及其实现二叉搜索树的查找算法,采用减而治之的思路与策略,其执行过程可以描述为:从树根触发,逐步地缩小查找范围,直到发现目标(成功)或缩小至空树(失败)。public BinNode<T> s原创 2017-11-14 16:21:34 · 177 阅读 · 0 评论 -
LinkedList源码笔记
链表结构不同于数组与向量中各数据项的物理存放位置与逻辑次序完全对应,链表中的元素虽然也构成一个线性逻辑次序,但其元素的物理地址可以任意。链表中的元素维护一个前驱与后继,分别指向上一个元素与下一个元素的地址。头尾节点与首末节点链表结构中,除了可见的首末节点first、last,还有不可见的头尾节点header、trailer。创建链表时即创建头尾节点,first时头节点的后继,last是尾节点的前驱。原创 2017-11-05 11:10:23 · 132 阅读 · 0 评论 -
数据结构--向量
向量与数组向量与数组的不同在于,向量是数组结构的一般性推广。数组在创建时内部空间已经确定,是静态的内存管理办法。向量内部空间是动态的内存管理办法。在Java中,ArrayList 与 Vector都是这种数据结构.ArrayList 与 Vector的区别 Vector的方法都是线程安全的,同步的,而ArrayList不是,由于线程同步必然会影响性能,因此ArrayList的性能比Vector好。原创 2017-11-05 11:13:08 · 811 阅读 · 0 评论 -
栈与栈的一些典型应用
栈的特点 栈属于线性序列结构。可基于链表或者向量结构实现。 栈中元素的操作次序始终遵循“后进先出”(last-in-first-out) /** *基于链表实现栈 */ import java.util.LinkedList;public class StackBaseLinkedList<E> { private LinkedList<E> storage = null; p原创 2017-11-05 11:17:17 · 2429 阅读 · 0 评论 -
Java解决N皇后问题
N皇后算法实现共有三个类,其中一个类Stack可以由LinkedList代替用做存放临时解的类import java.util.LinkedList;public class Stack<E> { private LinkedList<E> storage = null; public Stack() { storage = new LinkedList<E>();原创 2017-11-05 11:19:25 · 424 阅读 · 0 评论 -
二叉树实现中序遍历(迭代版)
二叉树实现二叉树实现代码中序遍历顺序 首先访问当前节点的左子树(如果存在) 再访问当前节点 最后访问右子树(如果存在) 中序遍历图解中序遍历代码思路 中序遍历可分解为d+1段 沿最左侧通路自底而上访问各节点 借助辅助栈,将访问的节点放入栈中 自底而上遍历对应的右子树 当右子树中存在左子树时,继续进入左子树向下访问 中序遍历代码//子树中序遍历 public ArrayList<E> travI原创 2017-11-05 11:50:49 · 1327 阅读 · 0 评论