数据结构
astronaut233
这个作者很懒,什么都没留下…
展开
-
单链表的操作
参考:https://www.cnblogs.com/ysocean/p/7928988.html 链表是一种使用广泛的通用数据结构,它也可以用来作为实现栈、队列等数据结构的基础,基本上除非需要频繁的通过下标来随机访问各个数据,否则很多使用数组的地方都可以用链表来代替。 单向链表(Single-Linked List) 单链表是链表中结构最简单的。一个单链表的节点(Node)...转载 2019-02-21 15:29:21 · 163 阅读 · 0 评论 -
单链表实现队列和栈
单链表实现队列很简单,因为队列是先入先出FIFO,所以入队就是在单链表的头插入数据,出队就是在单链表的尾得到数据,然后删除。队列的接口:public interface Queue { void put(int data); int pop(); void display();}接口实现:public class QueueImpl implemen...原创 2019-02-22 19:42:12 · 806 阅读 · 1 评论 -
二叉树的遍历 前中后序,层序
二叉树是很重要的数据结构,它的遍历也同样很重要首先先建造一个二叉树: private class Node{ private int data; private Node leftChind; private Node rightChind; public Node(int data, Node leftChind, N...原创 2019-02-22 22:20:00 · 669 阅读 · 0 评论 -
java 排序算法
今天重新复习了一下排序的算法,一般分为O(n2)(冒泡排序,插入排序,选择排序)O(nlogn)(快速排序,归并排序,堆排序)直接上代码:public interface Sort { void bubbleSort(int[] data); void insertSort(int[] data); void quickSort(int[] data,int ...原创 2019-02-23 22:17:46 · 114 阅读 · 0 评论 -
java 堆与堆排序
1.堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了。当速度很重要且有很多插入操作时,可以选择堆来实现优先级队列。一般用在动态数据的排列上堆分大根堆和小根堆,在这里主要说大根堆。堆的插入,由于使用数组来实现堆,所以插入的元素一般在数组末尾,也就是堆得最后一个叶子结点,插入后,要是堆维...原创 2019-02-25 21:46:38 · 153 阅读 · 0 评论 -
图的邻接矩阵和遍历 拓扑排序 java
图的表示有三种,邻接表,邻接矩阵和十字链表我使用邻接矩阵表示图邻接矩阵中[i][j]表示i节点指向j节点,大小为[i][j]的值比如这样若是无向图,矩阵则是按照对角线对称的。首先是深度遍历,深度遍历是沿着一个节点往下走,当某个节点的下一个节点被访问过,或者就没有下一个节点时,返回。和二叉树的深度遍历类似,使用递归 /** * 深度遍历 ...原创 2019-03-02 18:07:37 · 641 阅读 · 0 评论