自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 数据结构 : 哈希表

当存在哈希冲突时,可以采用开放地址法或者链式哈希法来解决。在链式哈希法中,每个数组位置都链表,当多个元素映射到同一个位置时,它们会以链表的形式存储在该位置上。然而,哈希表的性能高效是以空间换时间为代价的,当哈希表元素过多时,会导致内存占用过大,甚至可能会影响程序的稳定性。因此,在使用哈希表时,需要避免一些常见的问题,例如哈希冲突、哈希函数设计、扩容和哈希表的负载因子等问题。哈希表的基本思想是,通过一种哈希函数将元素的键值转化为一个整数,将该整数作为数组的下标,从而实现元素的快速查找。先上代码,废话少说。

2023-06-12 18:57:59 78

原创 数据结构 : Prim 算法与 Dijkstra 算法

先上代码,废话少说。10000Prim算法和Dijkstra算法都是图的最短路径算法,它们的实现方法有所不同。

2023-06-12 18:47:54 92

原创 数据结构 : 邻接表及广度优先遍历

从起始节点开始,先将其入队,然后从队头开始,依次将队列中的节点出队,并将其未访问过的邻居节点入队。在使用邻接表表示图时,进行广度优先遍历的方法是首先将起始节点加入队列,然后从队头开始出队,再遍历出队节点的所有邻居节点,并将未被访问的节点加入队列。数组中每个元素表示一个节点,而链表则表示该节点与其它节点的关系。具体来说,每个节点的链表包含了该节点所连出去的所有边所对应的目标节点,这些目标节点被称为该节点的邻居节点。邻接表的优点在于它可以节省存储空间,因为只需要存储有边的节点即可,而没有边的节点可以省略。

2023-06-12 18:40:31 151

原创 数据结构:图的遍历

先上代码,废话少说。10图的遍历是指访问图中所有节点的过程。对于无向图和有向图分别存在两种遍历方式:深度优先遍历(DFS)和广度优先遍历(BFS)。

2023-06-12 18:34:27 62

原创 数据结构:N后问题

如果找到了这样的位置,就递归地考虑在第k+1行上放置皇后,否则就需要回溯,重新考虑在第k-1行上放置皇后的位置,以此类推。为了判断皇后是否会互相攻击,可以记录当前棋盘已被占用的列、主对角线和副对角线,如果在放置皇后时,发现一个皇后会与已经放置的皇后冲突,则需要回溯。N皇后问题的时间复杂度是指数级,但是实际上,由于大量的冗余搜索,算法的效率非常低,因此在实际应用中,需要使用一些优化技巧,例如剪枝等来加速算法。N皇后问题是经典的回溯算法问题,它的目的是在N×N的棋盘上放置N个皇后,使得它们互相攻击不了。

2023-06-12 18:23:04 27

原创 数据结构:循环队列

当入队时,先检查队列是否已满,如果满了,则不能入队,否则将元素插入到队尾指针指向的位置,然后将队尾指针向后移动一个位置。当出队时,先检查队列是否为空,如果空了,则不能出队,否则将队首指针向后移动一个位置,并将头部元素弹出。循环队列相对于普通队列的优点在于,当队列的头部和尾部指针到达数组边界时,它们会绕回到数组的起始位置。因此,在实现中,数组的长度通常是指定数量的元素,例如2的幂次方,这样才能使用对长度取模的方式实现循环。循环队列可以使用一个数组来实现,数组长度固定,并且存储的元素在逻辑上是首尾相接的。

2023-06-12 18:16:17 31

原创 数据结构 : 二叉树的构建与遍历

二叉树的遍历有三种方式:前序遍历、中序遍历和后序遍历。在前序遍历中,先遍历根节点,然后遍历左子树,最后遍历右子树。在中序遍历中,先遍历左子树,然后遍历根节点,最后遍历右子树。在后序遍历中,先遍历左子树,然后遍历右子树,最后遍历根节点。左子树中的所有节点的值都小于它的父节点的值,而右子树中的所有节点的值都大于它的父节点的值。二叉树是一种树形数据结构,它由一组节点构成,每个节点最多只有两个子节点,称为左子节点和右子节点。在二叉树中,每个节点都有一个父节点,除了根节点没有父节点。先上代码,废话少说。

2023-06-12 18:08:30 31

原创 数据结构:哈夫曼树

哈夫曼树

2023-05-15 22:22:47 61

原创 汉诺塔问题详解

每次递归调用时,当前函数的参数和局部变量都会被压入栈中,在递归返回时,又会弹出栈中的数据,以此达到保存状态和信息的目的。汉诺塔问题是经典的递归问题。在我们解决汉诺塔问题的时候,通过这个思想,将一个较为复杂繁琐的问题分解成三个较小,更好解决的子问题,在我们编程过程中,对于变量的命名也不能过于随便,例如a,b,c等,我们应该使用具有意义,让人简单易懂的单词来对变量进行命名,有利于对代码更好的阅读和理解。形参(parameter)指的是函数或方法定义时声明的参数,它们是一种变量,用来存储将会传递给该函数的值。

2023-04-24 22:45:03 1104

原创 数据结构:链队列

数据结构:链队列

2023-04-24 14:12:22 48

原创 数据结构:关于栈的应用(括号匹配)

利用栈解决括号匹配问题

2023-04-24 14:01:29 118

原创 关于线性表的总结以及汉诺塔问题的代码

关于线性表的总结以及汉诺塔问题的代码

2023-04-19 22:04:04 37

原创 数据结构(多项式加法)

利用链表解决多项式的加法

2023-04-10 23:47:38 26

原创 数据结构静态链表

数据结构静态链表

2023-04-10 23:32:47 49 2

原创 数据结构:单链表

数据结构:单链表

2023-03-29 23:13:01 93

原创 数据结构:顺序表

【代码】数据结构:顺序表。

2023-03-28 00:26:15 57

原创 数据结构与算法第一节课收获

数据结构与算法日常学习

2023-03-23 00:15:01 54 1

结构体 & 链表(1).html

结构体 & 链表(1).html

2022-11-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除