数据结构与算法
文章平均质量分 76
数据结构与算法的学习整理
輝长六加1
只会写HelloWord
展开
-
链表相关算法
文章目录1 带环的链表1-1 判断链表是否有环1-2 求带环链表的环入口2 删除指定节点/元素2-1 单链表删除,给出头节点2-2 单链表删除,只给出待删除的节点2-3 双向链表删除2-4 删除重复元素,保留1个重复元素2-5 删除重复元素,不保留重复元素3 反转链表5 链表排序5-1 合并两个有序链表5-2 排序链表1 带环的链表1-1 判断链表是否有环🚀 题目链接:https://leetcode-cn.com/problems/linked-list-cycle/🚀 代码public bo原创 2022-04-29 20:09:59 · 764 阅读 · 0 评论 -
背包问题算法
文章目录1 01背包2 完全背包3 多重背包4 混合背包5 二维费用背包6 分组背包1 01背包🚀 题目链接:https://www.acwing.com/problem/content/2/🚀 代码二维dp// n为物品数量,maxV为背包容量,v[i]、w[i]分别为第i件物品的容量和价值public int zeroOneKnapsack(int n, int maxV, int[] v, int[] w) { // 动态函数,表示将第i个物品放入容量为j的背包中的最大价值原创 2022-04-25 14:33:47 · 263 阅读 · 0 评论 -
查找相关算法
文章目录⭐二分查找⭐找出数组中重复的数字⭐不修改数组找出重复的数字⭐二分查找// orderArr是升序数组public int binarySearch(int[] orderArr, int target) { int l = 0, r = orderArr.length - 1; while (l < r) { int mid = (l + r) >> 1; if (target == orderArr[mid]) {原创 2022-04-23 14:49:07 · 539 阅读 · 0 评论 -
二叉树相关算法
文章目录性质遍历1 中序遍历2 先序遍历3 后序遍历其他性质遍历1 中序遍历2 先序遍历3 后序遍历其他原创 2022-04-22 20:24:33 · 319 阅读 · 0 评论 -
常见排序算法
文章目录1 冒泡2 选排3 归并4 快排5 直接插入6 希尔7 计数8 计数基数9 堆排PS:以下演示的排序都是升序1 冒泡🚀 代码无优化public void bubbleSort(int[] nums) { for (int i = 0;i < nums.length - 1;i++) { for (int j = 0;j < nums.length - 1 - i;j++) { if (nums[j] > nums[j + 1]) { swap(n原创 2022-04-21 16:48:24 · 533 阅读 · 0 评论 -
数据结构简记✏️ | 图的部分算法(动画演示)
图的部分算法最小生成树(Minimum Cost Spanning Treeh)一、Prim算法二、Kruskal算法最短路径(Shortest Path)拓扑排序(Topological Sort)最小生成树(Minimum Cost Spanning Treeh)一、Prim算法时间复杂度:O(n2)O(n^2)O(n2)。????适合图的类型:适合稠密图。动画演示:(从顶点0开始)二、Kruskal算法时间复杂度:O(eloge)O(eloge)O(eloge)。????适合图原创 2021-02-19 21:34:03 · 417 阅读 · 0 评论 -
数据结构简记✏️ | 二叉树遍历&图遍历(动画演示)
遍历基础一、二叉树遍历1. 先序遍历2. 中序遍历3. 后序遍历二、图遍历1. 广度优先遍历2. 深度优先遍历一、二叉树遍历1. 先序遍历动画演示:2. 中序遍历动画演示:3. 后序遍历动画演示:二、图遍历1. 广度优先遍历动画演示:2. 深度优先遍历动画演示:...原创 2021-02-19 21:31:47 · 2158 阅读 · 1 评论 -
数据结构简记✏️ | 排序基础(动画演示)
排序基础图解一、冒泡排序(Bubble Sort)二、选择排序(Selection Sort)1. 简单选择排序2. 堆排序(Heap Sort)三、插入排序(Insertion Sort)1. 直接插入排序2. 希尔排序(Shell Sort)四、归并排序(Merge Sort)五、快速排序(Quick Sort)六、计数基数排序(Radix Sort)一、冒泡排序(Bubble Sort)二、选择排序(Selection Sort)1. 简单选择排序2. 堆排序(Heap Sort)三、插入排原创 2021-02-18 17:43:03 · 217 阅读 · 1 评论 -
数据结构简记✏️ | 图
图一、图(Graph)的定义二、图的存储结构1. 邻接数组2. 邻接表一、图(Graph)的定义二、图的存储结构1. 邻接数组类型定义:#define UNVISITED 0#define VISITED 1#define INFINITY MAXINT//计算机允许的整数最大值typedef enum{DG,DN,UDG,UDN}GraphKind;//图的4种类型:有向图,有向带权图,无向图,无向带权图typedef struct { VexType *vexs;//顶点数组,V原创 2021-02-17 17:32:17 · 154 阅读 · 0 评论 -
数据结构简记✏️ | B树&B+树
B树&B+树B树(Balanced Tree of order m)一、B树的定义二、B树的存储结构B+树B树(Balanced Tree of order m)一、B树的定义二、B树的存储结构类型定义:#define m;//B树的阶。此处设为3typedef struct BTNode { int keyNum;//结点当前关键字个数 KeyType key[m+1];//关键字数组,0号单元闲置 struct BTNode *parent;//双亲结点指针 struc原创 2021-02-17 11:05:02 · 105 阅读 · 0 评论 -
数据结构简记✏️ | 树与森林&并查集
树与森林&并查集树与森林一、树与森林的定义二、树的存储结构1. 双亲表示法2. 双亲孩子表示法3. 孩子兄弟表示法并查集树与森林一、树与森林的定义二、树的存储结构1. 双亲表示法类型定义:typedef struct PTNode { TElemType data;//元素值 int parent;//双亲位置,根结点的双亲位置parent为-1}PTNode;typedef struct { PTNode *nodes;//由初始化分配的结点数组 int r,nodeN原创 2021-02-16 17:22:19 · 138 阅读 · 0 评论 -
数据结构简记✏️ | 二叉查找树&平衡二叉树
二叉查找树&平衡二叉树二叉查找树(Binary Search Tree)一、二叉查找树二、二叉查找树存储结构平衡二叉树(Balanced Binary Sort Tree)一、平衡二叉树二、平衡二叉树存储结构二叉查找树(Binary Search Tree)一、二叉查找树二叉查找树定义:又称二叉排序树(Binary Sort Tree),或者是空二叉树,或者是具有以下特征的二叉树,如图若左子树不空,则左子树上所有结点的值都小于根结点的值。若右子树不空,则右子树上所有结点的值都大于根结原创 2021-02-16 11:07:04 · 102 阅读 · 0 评论 -
数据结构简记✏️ | 二叉树&堆
二叉树&堆二叉树(Binary Tree)一、二叉树部分概念二、二叉树的部分性质三、二叉树的存储结构堆(Heap)一、堆部分概念二、堆的存储结构二叉树(Binary Tree)一、二叉树部分概念定义:具有nnn个结点的有限集合。根、左、右子树:对于二叉树ddd为根结点,aaa为左子树(左结点),eee为右子树(右结点)。满二叉树:完全二叉树:二、二叉树的部分性质非空二叉树的第iii层最多有2i−12^{i-1}2i−1个结点(i≥1i\ge 1i≥1)。深度为kkk的原创 2021-02-15 10:59:43 · 105 阅读 · 0 评论 -
数据结构简记✏️ | 哈希表&广义表
哈希表一、哈希表(Hash)二、哈希函数的部分构造方法1. 直接定址法2. 除留余数法三、处理冲突的方法1. 链地址法2. 开放定址法一、哈希表(Hash)哈希函数:H(key):K→D,key∈KH(key):K\to D,key\in KH(key):K→D,key∈K冲突:不同关键字的哈希函数可能相同,即H(key1)=H(key2),key1≠key2H(key_1)=H(key_2),key_1\ne key_2H(key1)=H(key2),key1=key2这种现象称为冲突原创 2021-02-14 17:38:29 · 477 阅读 · 0 评论 -
数据结构简记✏️ | 典型线性数据结构
线性数据结构典型数据结构线性结构的存储表示栈(Stack)循环队列(Queue)线性表典型数据结构栈:后进先出队列:先进先出线性表:可按任意位置访问线性结构的存储表示栈(Stack)顺序结构typedef struct { ElemType *elem;//存储空间的基址 int top;//栈顶元素的下一个位置,简称栈顶位标 int size;//当前分配的存储容量 int increment;//扩容时,增加的存储容量}SqStack; //顺序栈链式结构ty原创 2021-02-14 11:26:05 · 289 阅读 · 0 评论