数据结构和算法基础
To_be_thinking
不积跬步,无以至千里。因为热爱而充满激情与斗志!!!
展开
-
1.1线性表的数组实现(SeqList)
所有的线性表都要能够实现如下功能(为了数据结构的通用性,使用Java的泛型编程):public interface LList<T>{ boolean isEmpty(); int length(); T get(int i); void set(int i,T x); void insert(int i,T x); void append(T x); T rem...原创 2018-07-31 11:51:01 · 581 阅读 · 0 评论 -
1.2线性表的链式实现(LinkedList)
线性表的每个节点包含一个数据项(data)和指针(Java的对象引用),数据结构如下:public class Node<T> //自引用类:一个类申明包含一个引用当前类的对象的成员变量{ public T data;//为了方便更改节点间的链接关系,将这两个成员变量申明为public,允许其他类访问 public Node<T> next; publi...原创 2018-07-31 12:00:23 · 234 阅读 · 0 评论 -
1.3排序链表(SortedSinglyLinkedList)
排序单链表(升序排列)在单链表的基础上插入时需要找到比自己大的的第一个节点,然后插在该节点的前面。但是要重载一下节点数据项的数据类型(自定义类型)的compareTo()方法。代码如下:public class SortedSinglyLinkedList<T extends Comparable<T>> extends SinglyLinkedList<T&g...原创 2018-08-02 19:39:30 · 874 阅读 · 0 评论 -
1.4双端链表
双端链表与普通单链表的区别在于既可以从链表头部开始遍历,又可以从尾部开始遍历,这就要求每个节点不仅有一个后向指针,还要一个前驱指针。节点数据结构定义如下:public class DLinkNode<T> { public T data; public DLinkNode<T> pre; public DLinkNode<T> next...原创 2018-08-02 20:04:09 · 180 阅读 · 0 评论 -
3.1图的两种表示-邻接矩阵和邻接表
图是一种由节点和链(连接节点,有向或者无向)组成的数据结构。可以用邻接矩阵和邻接表两种数据结构来表示。P1:邻接矩阵的数据结构由存储节点的顺序表和表示邻接关系的0-1矩阵组成。要实现的功能包括顶点和边的增加和删除、边的权重获取和更新、深度优先和广度优先搜索。图的接口定义如下:public interface GGraph<T> { public static fina...原创 2018-08-22 21:31:07 · 629 阅读 · 0 评论 -
归并排序(MergeSort)详解(附动画代码)
归并排序算法思想:将数组不断二分得到子数组,知道子数组长度为1(自然是排序好的),对左子数组和右子数组分别排序,子数组长度为1,2,4....,子数组排序使用了一个辅助数组def exchange(arr,i,j): temp=arr[i] arr[i]=arr[j] arr[j]=temp#归并需要一个额外数组存放归并前的子数组排序状态def merg...原创 2018-11-12 11:31:45 · 1300 阅读 · 0 评论 -
LeetCode-23. Merge k Sorted Lists题目的思考总结
这条Hard的题目https://leetcode.com/problems/merge-k-sorted-lists/可以借鉴easy的这个题https://leetcode.com/problems/merge-two-sorted-lists/的思维方式(代码),参考这一篇:https://blog.csdn.net/To_be_to_thought/article/details/8505...原创 2018-11-12 17:00:19 · 163 阅读 · 0 评论 -
二叉树(Binary Tree)详解
二叉树本身就是递归定义的(wikipedia):To actually define a binary tree in general, we must allow for the possibility that only one of the children may be empty. An artifact, which in some textbooks is called an e...原创 2018-11-30 21:58:13 · 6114 阅读 · 0 评论 -
ProblemSet of Union Find
并查集模板:快速查找 并查集这是一个eager的并查集,就是在合并两个节点的时候将这两个节点的组份id修改成同一个根节点的编号.public class QuickFindUF { private int[] componentID; //各个节点(数组索引)所属的组份(数组值) private int count; // number of components public Q...原创 2019-08-30 16:50:47 · 181 阅读 · 0 评论