
数据结构与算法
日常总结
一个F啊
在成长的道路上,努力前行,加油
展开
-
自定义List接口及相关方法
与内部List接口同名,所以在使用时注意导包问题 以下为List接口的相关代码 import java.util.Comparator; /** * List是线性结构的接口 * 里面定义了该线性结构的一些通用操作 并支持泛型 * 继承自Iterable接口(可迭代接口) 主要用于遍历数据结构 * 其次还有让我们的类可以被foreach循环使用 * 不是所有的数据结构都可以像数组一样通过角标来访问元素 * */ public interface List<E> extends It原创 2021-07-17 21:01:05 · 349 阅读 · 0 评论 -
自定义ArrayStack
自定ArrayStack实现自定义的Stack接口 import java.util.Iterator; public class ArrayStack<E> implements Stack<E> { private ArrayList<E> list; public ArrayStack() { list = new ArrayList<>(); } @Override public int size原创 2021-07-20 14:56:39 · 107 阅读 · 0 评论 -
双向循环链表
//双向循环链表 public class LinkedList implements List, Stack, Queue, Deque { private class Node { E data; Node pre; Node next; public Node(E data) { this.data = data; pre = null; next = null; } @Override public String toString() { return data.toString(); } } pr原创 2021-07-24 08:09:35 · 458 阅读 · 0 评论 -
自定义ArrayList
与ArrayList同名,注意导包问题,实现之前自定义的List接口 代码中方法皆有注释,注意查看 import java.util.Comparator; import java.util.Iterator; /** * 线性结构的顺序存储实现方式 * */ public class ArrayList<E> implements List<E> { //存储元素的容器 private E[] data; //元素的有效个数 private i原创 2021-07-18 07:48:40 · 160 阅读 · 0 评论 -
分治回溯-分治的应用-全排列问题
大致思路:原创 2021-07-27 21:50:44 · 146 阅读 · 0 评论 -
自定义Stack接口
相应代码如下: public interface Stack<E> extends Iterable<E> { //有效元素个数 public int size(); //判空方法 public boolean isEmpty(); //压栈 public void push(E element); //出栈 移除栈顶元素并当作返回值使用 public E pop(); //查看栈顶元素 public E peek(); //清空Stack public vo原创 2021-07-19 08:42:11 · 127 阅读 · 0 评论 -
快速排序(递归)-三路快速排序(图解)及代码
快速排序的基本思想: 通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,比另一部分的关键字大,则科分别对这两部分记录继续进行排序,以达到整个序列有序,单路没有考虑到相等的问题 时间复杂度:O(nlog2n) 空间复杂度:O(1) 稳定性:不稳定 三路快速排序的话是两路快速排序的一种优化 具体如下: 比如待排序的数组如下: 我们定义一个l指向数组的第一个元素,r指向数组的最后一个元素,组成一个区间 三路快速排序思路: 从指针i开始,与关键字进行比较, 如果小于关键原创 2021-07-30 23:02:06 · 1583 阅读 · 0 评论