数据结构与算法
日常总结
一个F啊
在成长的道路上,努力前行,加油
展开
-
自定义List接口及相关方法
与内部List接口同名,所以在使用时注意导包问题以下为List接口的相关代码import java.util.Comparator;/** * List是线性结构的接口 * 里面定义了该线性结构的一些通用操作 并支持泛型 * 继承自Iterable接口(可迭代接口) 主要用于遍历数据结构 * 其次还有让我们的类可以被foreach循环使用 * 不是所有的数据结构都可以像数组一样通过角标来访问元素 * */public interface List<E> extends It原创 2021-07-17 21:01:05 · 307 阅读 · 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 · 90 阅读 · 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;}@Overridepublic String toString() {return data.toString();}}pr原创 2021-07-24 08:09:35 · 423 阅读 · 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 · 131 阅读 · 0 评论 -
分治回溯-分治的应用-全排列问题
大致思路:原创 2021-07-27 21:50:44 · 114 阅读 · 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 · 99 阅读 · 0 评论 -
快速排序(递归)-三路快速排序(图解)及代码
快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,比另一部分的关键字大,则科分别对这两部分记录继续进行排序,以达到整个序列有序,单路没有考虑到相等的问题时间复杂度:O(nlog2n)空间复杂度:O(1)稳定性:不稳定三路快速排序的话是两路快速排序的一种优化具体如下:比如待排序的数组如下:我们定义一个l指向数组的第一个元素,r指向数组的最后一个元素,组成一个区间三路快速排序思路:从指针i开始,与关键字进行比较,如果小于关键原创 2021-07-30 23:02:06 · 1445 阅读 · 0 评论