
数据结构
文章平均质量分 61
一只小八角
这个作者很懒,什么都没留下…
展开
-
Java中的图论概述
1.欧拉环与欧拉链: 欧拉环:从一个顶点出发,经过每条边一次,回到起点,要求每个顶点的度是偶数 欧拉链:从一个顶点出发,经过每条边一次,但不一定要回到起点,只允许其中两个顶点的度是奇数,其余均为偶数 2.图形—— 2.1 无向图与有向图: 无向图:以(V1,V2)表示边线 有向图:以<V1,V2>表示边线 2.2 专有名词简介: 顶点:vertice 边:edge 完全图:无向图中,n个顶点有n(n-.原创 2021-04-02 20:21:39 · 497 阅读 · 0 评论 -
二叉树的前序、中序、后序、层次、之字形层次遍历
二叉树的遍历* 遍历方式:中序遍历 左-根-右* 前序遍历 根-左-右* 后序遍历 左-右-根* 层次遍历 从上往下遍历* 遍历常考算法题与实现思路:* ①求二叉树的层次遍历:对于不为空的结点,先把该结点加入到队列中;从队中拿出结点,如果该结点的左右结点不为空,* 就分别把左右结点加入到队列中;重复以上操作直到队列为空。* ②求二叉树的之字形层次遍历:与层次遍历类似.原创 2021-03-31 21:56:58 · 112 阅读 · 0 评论 -
使用链表建立二叉树
package tree;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/** * @author Eightn0 * @create 2021-03-31 18:45 * 用链表建树 */class TreeNode{ int value; TreeNode left_Node; TreeNode right_No...原创 2021-03-31 20:05:31 · 717 阅读 · 0 评论 -
堆栈的动态数组实现
package stack;/** * @author Eightn0 * @create 2021-03-15 15:00 * 用动态链表实现堆栈 *//*声明节点*/class Node{ int data; Node next; public Node(int data) { this.data = data; this.next = null; }}/*用链表实现堆栈并设计压栈、出栈、判断栈是否为空的方法*/.原创 2021-03-15 15:50:27 · 135 阅读 · 0 评论 -
堆栈的动态链表实现
package stack;/** * @author Eightn0 * @create 2021-03-15 15:00 * 用动态链表实现堆栈 *//*声明节点*/class Node{ int data; Node next; public Node(int data) { this.data = data; this.next = null; }}/*用链表实现堆栈并设计压栈、出栈、判断栈是否为空的方法*/.原创 2021-03-15 15:43:05 · 101 阅读 · 0 评论 -
堆栈的静态数组实现
package stack;import java.io.*;/** * @author Eightn0 * @create 2021-03-15 14:05 * 堆栈:一组相同数据类型的组合,具有后进先出的特性 * 应用中的堆栈:递归调用,子程序的调用等 * Java中的堆栈:用静态数组或者动态链表结构实现,但需要维持堆栈后进先出与从顶端读取数据的两个原则 * *//*用数组声明一个堆栈*/class StackByArray { private int[] stack;.原创 2021-03-15 14:41:01 · 121 阅读 · 0 评论 -
合并有序链表
题目:将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后新链表依然有序。解法:遍历两个链表,分别比较两个链表值最小的节点,将新链表的next指向较小的节点public class ListNode { int val; ListNode next = null;}public class Solution { /** * * @param l1 ListNode类 * @param l2 ListNod...原创 2021-03-14 17:14:41 · 75 阅读 · 0 评论 -
寻找单向链表中是否存在环
/*环:在一个单链表中存在一个循环子链表,有两种解题思路思路一:从当前head出发,每前进一步就往回比较所有前驱节点,看是否是相同节点,若是则存在环、思路二:定义快慢指针,快指针每次走两步,慢指针每次走一步,若快慢指针相遇,则存在环,否则不存在环这里采用快慢指针的方法*///这是一个定义好的节点class ListNode { int val; ListNode next; ListNode(int x) { val = x;...原创 2021-03-14 15:39:50 · 113 阅读 · 0 评论 -
双向链表的添加元素与删除元素
/** * @author Eightn0 * @create 2021-03-13 20:36 * 双向链表:一个字段存放数据,两个字段存放指针,一个指针指向后面的节点,另一个指针指向前面的节点 * llink-data-rlink * 插入:在第一个位置插入:将新节点的右链接指向原表的第一个节点,左链接指向null * 将原表第一个节点的左链接指向新节点 * 将原表表头指针head指向新节点 * .原创 2021-03-13 21:57:39 · 617 阅读 · 0 评论 -
单向环形链表
* @author Eightn0 * @create 2021-03-13 19:33 * 环形链表:在列表的任意一个节点,都可以到达此列表的各个节点 * 单向的环形结构:列表的最后一个指针指向表头 * 插入:若将新节点插入在第一个节点前:则将新节点的指针指向原表头 * 将最后一个节点的指针指向新节点 * 将表头指向新节点 * 若将新节点插入在任意节点X之后:将新节.原创 2021-03-13 20:35:24 · 88 阅读 · 0 评论 -
如何操作单向链表
package node.SinglyLinkedList;/** * @author Eightn0 * @create 2021-03-12 14:12 *///首先定义Node类class Node{ int data; int np; String names; Node next; public Node(int data, int np, String names) { this.data.原创 2021-03-12 15:33:00 · 71 阅读 · 0 评论