![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
大学数据结构与算法知识
Apple-yeran
Stay Hungry, Stay Foolish.
展开
-
手写二叉查找树及测试
二叉查找树,即BinarySearchTree,又叫二叉排序树,手写BinarySearchTree的目的是掌握此类中相关方法的迭代(循环)实现,并着重体会递归是如何工作的,进而能用递归解决实际问题。 BinarySearchTree类中相关方法: 方法: boolean add(char c) 增加 boolean remove(char c) 删除 boolean contains(char c) 查找 char max() 节点的最大值 char min() 节原创 2021-08-19 22:23:12 · 239 阅读 · 0 评论 -
手写HashMap及测试
MyHashMap: /* 手动实现一个HashMap(根据JDK 1.7, 数组 + 链表) 规定key和value都不能是null,但是JDK 1.7允许key和value为null。 */ public class MyHashMap<K, V> { // 属性 private static final int MAX_CAPACITY = 1 << 30; // 即最大容量为2^30 private static final int DEF原创 2021-08-15 00:52:16 · 246 阅读 · 0 评论 -
彻底搞懂汉诺塔问题(递归)
汉诺塔问题描述: 汉诺塔是根据一个传说形成的数学问题,有三根杆子A,B,C。A杆上有 n 个 (n>1) 穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至 C 杆: (1)每次只能移动一个圆盘; (2)大盘不能叠在小盘上面。 提示:可将圆盘临时置于 B 杆,也可将从 A 杆移出的圆盘重新移回 A 杆,但都必须遵循上述两条规则。 编程解决两个问题: 当有n个盘子时,需要移动多少次才能完成。 打印每次移动的过程。 分析: 第一个问题: 假设A杆上的n个盘子以B杆为临时杆,移动到C杆,需原创 2021-07-24 00:18:40 · 1199 阅读 · 0 评论 -
手写Queue(顺序映像、非顺序映像),及其应用场景
文章目录1 队列的顺序映像2 队列的应用场景 队列的实现有两种:顺序映像、非顺序映像,顺序映像的底层是循环数组,非顺序映像的底层是单向链表。 1 队列的顺序映像 import com.cskaoyan.exception.EmptyQueueException; /** * 顺序映像(底层是循环数组)实现队列,可扩容 * @author PorscheYe * @version v1.0 */ /* 有的教材上应用循环队列实现顺序映像结构的队列时,对于判断队空和队满: 队空:front原创 2021-07-22 23:07:15 · 635 阅读 · 0 评论 -
手写Stack(顺序映像、非顺序映像),及其应用场景
栈的实现有两种:顺序映像、非顺序映像,顺序映像的底层是数组,非顺序映像的底层是单向链表。 栈的应用场景: 反转 括号匹配 表达式求值 浏览器前进后退功能 深度优先遍历 1 栈的非顺序映像 import java.util.EmptyStackException; /** * 非顺序映像(底层是单向链表)实现栈,链表从栈顶指向栈底 * @author PorscheYe * @version v1.0 */ public class MyStack { // 属性 priva.原创 2021-07-22 17:31:26 · 607 阅读 · 2 评论 -
手写LinkedList及测试
与LinkedList相关的接口有List、Iterator,本例中MyLinkedList相当于LinkedList,MyList相当于List,MyIterator相当于Iterator。 MyList: public interface MyList { boolean add(String s); void add(int index, String s); void clear(); boolean contains(String s); Strin原创 2021-07-22 01:30:53 · 116 阅读 · 0 评论 -
手写ArrayList及测试
与ArrayList相关的接口有List、Iterator,本例中MyArrayList相当于ArrayList,MyList相当于List,MyIterator相当于Iterator。 MyList: public interface MyList { // 自己实现List,实现的方法仅限于List中对元素操作的方法,没有实现对集合的操作方法 boolean add(String s); void add(int index, String s); void clea原创 2021-07-20 23:12:41 · 220 阅读 · 0 评论