数据结构
zhao123sun
这个作者很懒,什么都没留下…
展开
-
【java】【二叉树】【线索化】
/** ** 线索化二叉树 ** 代码是在之前二叉树代码的基础上增加,重点关注threadedNodes() ** 方法。线索化直接理解代码有点困难。但是可以记一个重点:关键在** 于充分利用节点的左右指针。可以配合画图、代码一起理解,效果较**好 ** */ public class BinaryTreeDemo { public static void main(String[] args) { HeroNode1 root = new HeroNode1(1, ".原创 2020-12-13 14:29:00 · 66 阅读 · 0 评论 -
【Java】【顺序存储二叉树】
package com.study; import java.util.Arrays; public class ArrBinaryTreeDemo { public static void main(String[] args) { int[] arr = {1,2,3,4,5,6,7}; ArrBinaryTree tree = new ArrBinaryTree(arr); tree.preOrder(0); } } class ArrBinaryTree{原创 2020-12-10 12:45:52 · 90 阅读 · 0 评论 -
【java】【二叉树】【删除节点】
/** ** 二叉树相关代码,只是基于一个大示例小步迭代,层层递进的增加功能代码. ** 这里只需要关注deleteNode()方法即可。 ** 全贴出来,只是便于测试而已。 ** 这里的删除节点,是限定条件的实现。 ** 条件: 1.如果删除的节点是叶子节点,则删除该节点。 ** 2.如果删除的节点非叶子节点,则删除该子树。 ** 这里未考虑有子节点的节点,删除该节点之后,元素的位置 ** 关系。 */ public class BinaryTreeDemo1 { publi原创 2020-12-06 14:35:21 · 190 阅读 · 0 评论 -
【java】【二叉树】【前序、中序、后序查找】
package com.study.tree; /** * 前序\中序\后序查找主要关注的还是顺序。 * 什么顺序先检查 根节点(node)视为具体 前 - 中 - 后序的查找算法得因由。 * 所以,只要有了 顺序 的思路,就不难理解。 * 唯一需要关注的是,前、中、后序的算法效率。 * 目前测试的结果是:后序最优。 * 但碍于目前理解尚浅,不懂的还很多,只好残念留之。 **/ public class BinaryTreeDemo1 { public static void main(String[原创 2020-12-06 13:05:16 · 117 阅读 · 0 评论 -
【java】【二叉树】【前序、中序、后序遍历】
/** * 二叉树前序、中序、后序遍历 * 所谓前、中、后序遍历, 区别主旨关注在根节点的输出时机 * 前序:最早 * 中序:其次 * 后序:最晚 * */ class BinaryTree1{ private HeroNode1 node; public void preOrder() { if( node != null ) { this.node.preOrder(); }else{ System.out.println( "二叉树为空,无法遍历" ); } } .原创 2020-12-02 03:48:43 · 217 阅读 · 2 评论 -
【java】【HashTable】【哈希表】
/** * 哈希表实现思路 : 主要脑子里有实现链表的思路就不难。 * hash表真的像常背的面试题一样,主要构成:数组 + 链表 * 1.HashTable 比 链表 多一个hash方法(关键) * 2.HashTable 对底层实现的链表 又包装了一层 * 3.HashTable里保存LinkedList引用。 * 4.链表 在 HashTable 里的表现形式又是 数组。 * * PS:这只是Hash表的一个最简单实现,基于此可以继续完善。 * 至于 hash 的多种方式实现。都可以在此基础上进行.原创 2020-11-28 03:04:48 · 178 阅读 · 2 评论 -
【java】实现【栈】
public class StackDemo { public static void main(String[] args) { Stack s = new Stack(5); s.push(1); s.push(2); s.push(3); s.push(4); s.push(5); s.showStack(); } } class Stack{ //栈大小 ...原创 2020-10-21 08:18:14 · 61 阅读 · 0 评论 -
【java】实现【双向链表】
public class DoubleLinkedListDemo { public static void main(String[] args) { DoubleLinkedList dList = new DoubleLinkedList(); HeroNode2 n1= new HeroNode2(1, "卢俊义", "玉麒麟"); HeroNode2 n5= new HeroNode2(5, "关胜", "大刀"); ...原创 2020-10-21 05:31:21 · 67 阅读 · 0 评论 -
【java】实现【单链表】
public class SingleLinkedListDemo { public static void main(String[] args) { HeroNode h1 = new HeroNode(1, "宋江", "及时雨"); HeroNode h3 = new HeroNode(7, "吴用", "智多星"); HeroNode h4 = new HeroNode(9, "林冲", "豹子头"); SingleLi...原创 2020-10-20 04:21:56 · 61 阅读 · 0 评论