![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
scaler7
这个作者很懒,什么都没留下…
展开
-
有向图的十字链表存储方式,以及统计图中顶点度的方法-java
有向图使用邻接表存储方式时,顶点的出度通过遍历它的邻接单链表可以实现,但是入度需要遍历所有邻接单链表才能得到逆邻接表则相反,逆邻接表中顶点的入度易得到,出度则需要遍历所有单链表十字链表可解决这一问题,十字链表中的每个节点既有一个指针指向以它本身为尾的边的链表(出度),也有一个指针指向以它本身尾头的边的链表(入度)这样统计一个顶点的度就很方便,典型的使用空间换取时间。/** * 有向图的十字链表存储方式 */public class AdjacencyCrossListGraph {原创 2022-01-17 11:39:18 · 881 阅读 · 0 评论 -
图(无向网)的邻接表方式存储,以及邻接表的深度、广度优先遍历方法-java
/** * 图(无向网)的邻接表存储结构 */public class AdjacencyListGraph { // 邻接表的顶点数组 vertexNode[] vexs; int vexNums,arcNums; // 顶点数组的元素类 class vertexNode{ // 数据域 char data; // 存放由该结点的邻接点组成的单链表的头指针 // head只是为了方便操作的一原创 2022-01-17 11:25:31 · 1088 阅读 · 0 评论 -
图(无向网)的邻接矩阵存储以及深度、广度优先遍历操作-java
/** * 图的邻接矩阵表示法(无向网) */public class AdjacencyMatrixGraph { // 图的顶点数组 char[] vexs; // 邻接矩阵 int arcs[][]; // 图中顶点和边的数量 int vexNums,arcNums; // 构造方法 public AdjacencyMatrixGraph(int n){ this.vexs=new char[n];原创 2022-01-17 11:16:58 · 1310 阅读 · 0 评论 -
树、二叉树、森林的一些性质与操作
关于树的一些概念和术语,有位博主写的很好,可以点下面的链接去看一下我是链接二叉树的性质在二叉树的第i层上至多有2j-1个结点(i>=1)深度为k的二叉树至多有2k-1个结点(k>=1)深度为k时至少有k个节点对任何一棵二叉树T,如果其叶子数为n0,度为2的节点为n2,则n0=n2+1具有n个结点的完全二叉树的深度为[log2n]+1([log2n]代表向下取整),例如有12个结点的完全二叉树的深度为[212]+1=3+1=4如果对一棵有n个结点的完全二叉树(深度由性质4可知,为[原创 2022-01-13 00:25:30 · 179 阅读 · 0 评论 -
Java用两个栈实现队列
/** * 用两个栈实现队列 */public class StackQueue { Stack stackA; Stack stackB; int queueSize; public StackQueue(){ stackA = new Stack(); stackB = new Stack(); queueSize=0; } /** * 将入队元素压入到栈A * @param原创 2022-01-08 18:24:15 · 182 阅读 · 0 评论 -
Java用链表实现队列
/** * 链表实现队列 */public class LinkedQueue { class Node{ int val; Node next; public Node(int val){this.val=val;} public Node(int val,Node next){this.val=val;this.next=next;} } // 队头指针 Node front; // 队尾指针原创 2022-01-08 17:50:03 · 1838 阅读 · 1 评论 -
Java使用数组实现循环队列
/**数组实现循环队列*/public class LoopQueue {// 存储数据的数组int[] queue;// 队头指针int front;// 队尾指针int rear;/**初始化@param queueSize*/public LoopQueue(int queueSize){this.front=0;this.rear=0;this.queue = new int[queueSize];}/**入队@param element@ret原创 2022-01-08 17:04:09 · 481 阅读 · 0 评论 -
Java用链表实现链式栈
/** * 用链表实现栈 */public class LinkedStack { /** * 栈顶元素 */ private Node stack; /** * 栈中元素个数 */ private int stackSize=0; /** * 初始化栈 */ public LinkedStack(){ stack=null; } public LinkedS原创 2022-01-07 21:33:38 · 545 阅读 · 0 评论 -
Java用两个队列实现顺序栈
/** * 用队列实现栈 */public class QueueStack { /** * 队列A */ private Queue queueA; /** * 队列B */ private Queue queueB; private int stackSize=10; private int top; /** * 初始化 */ public QueueStack(){原创 2022-01-07 21:11:01 · 323 阅读 · 0 评论 -
Java用数组实现顺序栈
public class SequenceStack { private int stackSize=10; private int[] stack; // 栈顶指针 private int top=-1; public SequenceStack(){ stack = new int[stackSize]; } public SequenceStack(int stackSize){ this.stackSize=st原创 2022-01-07 20:54:17 · 94 阅读 · 0 评论 -
Java手动实现单向链表
public class SinglyLinkedList<E> { private Node<E> first; private Node<E> last; public SinglyLinkedList(){ } private int size = 0; private Node addFirst(Node node){ first = node; return node;原创 2021-11-17 15:59:27 · 492 阅读 · 0 评论 -
Java手动实现有序表
public class SequenceList<E> { /** * 有序表 */ private Object[] list; /** * 默认容量 */ private int defaultCapatity = 10; /** * 有序表长度 */ private int length; /** * 当前容量 */ private in原创 2021-11-17 14:49:17 · 252 阅读 · 0 评论