
数据结构
BNMZY
chatgpt搬运工
展开
-
图
深度优先(DFS) 先访问第一个节点(每访问一个节点需要标记已访问,可用数组) 结点v入栈 当栈非空时,继续执行,否则算法结束 出栈,取得头结点u 查找u的第一个邻结点w 若u的邻结点w不存在,返回第三步,否则执行下面步骤 若结点w尚未被访问,访问w并标记为已访问(若已经被访问,则跳过下一小步) 结点w入栈 查找结点u相对于w的下一个邻结点 若是连通图,一次则可完成,否则需要循环调用方法 ...原创 2020-04-05 22:34:31 · 178 阅读 · 0 评论 -
JAVA中各种数据结构类
队列 Queue<String> queue = new LinkedList<>(); //增加元素 queue.offer("a"); //出队,会删除队首 String result_poll = queue.poll();//空值返回null String result_remove = queue.remove();//空值抛出异常 //展示队首第一个,不删...原创 2020-04-04 00:40:24 · 316 阅读 · 0 评论 -
堆排序
代码 /** * 堆排序 * 1. 将一个数组(二叉树),调整成一个大顶堆,由下至上,先找第一颗有子树的节点开始 * 2. 再将数组第一个同最后一个交换,即把最大的放到最后 * 3. 调整第一个节点(因为只有第一个节点变了,其他还是大根堆) * 4. 循环直至结束 * @param arr */ public static void heapSort(int arr[]){ ...原创 2020-04-02 16:35:12 · 96 阅读 · 0 评论 -
单向环形链表-约瑟夫
构建思路 先创建一个节点,让first指向该节点,并形成环形 后面当我们每创建一个新的节点,就把该节点加入到已有的环形链表中即可 节点类: public class Boy { private int no; private String name; private Boy next; ... } 增加 环类及增加方法: public class Cir...原创 2020-03-28 23:12:39 · 101 阅读 · 0 评论 -
数据结构-双向链表
概念 节点类: public class HeroNode { public int no; public String name; public String nickName; public HeroNode next; //指向下一个节点 public HeroNode pre;//指向上一个节点 ... } 链表类同单链表 ...原创 2020-03-28 23:10:09 · 112 阅读 · 0 评论 -
数据结构-单链表
概念 链表是以节点的方式来存储,是链式存储 每个节点包含data域,next域:指向下一个节点 链表的各个节点不一定是连续存储 链表分带头结点的链表和没有头结点的链表,根据实际的需求来确定 java实现:无顺序添加 先创建一个head头结点,作用就是标示单链表的头节点 后面每添加一个节点,就直接加入到链表的最后 节点类: public class HeroNode { publi...原创 2020-03-28 23:07:57 · 152 阅读 · 0 评论