自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 -哈希表-

哈希表(Hash Table)是一种非常重要的数据结构,它使用哈希函数(Hashing Function)将键(key)映射到存储桶(bucket)中,从而实现数据的快速存储、查找、删除等操作。哈希表在平均情况下能够实现O(1)的查找、插入和删除时间复杂度,因此被广泛应用于各种场景,如缓存系统、数据库索引、编程语言中的字典等。

2024-05-28 12:35:27 152

原创 顺序查找与二分查找

2.二分查找是一种在有序列表中高效查找特定元素的算法。每次查找时,它都会取列表的中间元素进行比较。如果要查找的元素小于中间元素,则在列表的左半部分继续查找;如果要查找的元素大于中间元素,则在列表的右半部分继续查找。这个过程会一直重复,直到找到元素或确定元素不存在于列表中。1.在顺序查找中,代码设置了一个哨兵。顺序查找是一种最简单的查找方法。它从列表的一端开始,逐个检查每个元素,直到找到所需的元素或搜索完整个列表。

2024-05-28 12:29:50 169

原创 Prim 算法与 Dijkstra 算法

3. dijkstraOrPrim函数中distanceArray(存储从源点到每个节点的最短距离)、parentArray(存储到达每个节点的最短路径的父节点)和visitedArray(标记节点是否已被访问)。1.在typedef中,weights是个指向整数指针的指针,即二维整数数组,numNodes表示网络中的节点数量。Prim 算法用于解决最小生成树问题,而 Dijkstra 算法用于解决单源最短路径问题。2. initNet 函数初始化矩阵。

2024-05-23 15:24:50 134 1

原创 数据结构:图的遍历

2.Graph,定义了一个图的数据结构,connections:一个二维数组,表示图中节点之间的连接关系,connections。1.GraphNodeQueue,定义了一个循环队列,用于图的遍历,如广度优先搜索。表示从节点i到节点j的连接关系。

2024-05-19 19:44:45 268 1

原创 数据结构:N皇后问题

这段代码是用来解决N皇后问题的。N皇后问题是一个经典的回溯算法问题,即在N×N的棋盘上放置N个皇后,使得它们不能互相攻击,即任何两个皇后都不能处于同一行、同一列或同一斜线上。1.place函数中整数数组paraSolution代表当前棋盘上的皇后位置,paraT代表当前要放置皇后的位置。2.backtracking函数中使用回溯算法来尝试放置皇后,如果 paraT 大于 paraN,说明已经放置了所有的皇后。3.nQueen函数初始化棋盘,并调用backtracking函数来开始放置皇后。

2024-05-16 15:17:02 128

原创 数据结构:二维数组与矩阵乘法

代码。

2024-05-14 20:11:55 135 2

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

3.dequeue函数用于从队列中移除并返回一个二叉树节点。1.isQueueEmpty 函数用于检查队列是否为空。2.enqueue函数用于将一个二叉树节点添加到队列中。

2024-05-14 20:01:42 112 2

原创 数据结构:循环队列

1.该代码是循环队列的代码,在这代码中用%取余来更新队头front和队尾rear的索引,使得队列中的元素能够循环地利用存储空间。当队尾到达数组的末尾时,它会自动回到数组的开头,从而避免了因数组末尾空间未使用而导致的空间浪费。

2024-05-10 20:08:29 109

原创 数据结构:链式队列

2.enqueue函数用于在链式队列的末尾添加一个元素,在这个函数中,最主要的变化是队列的队尾的变化。它将新节点添加到队列的末尾,又将paraQueue的rear指针更新为新节点,表示队列的末尾已经改变。1.在initQueue函数中,首先定义了一个头节点,并且头节点的next为NULL,这说明现在队列为空,之后,又将resultPtr的front和rear指向头节点,此时队列为空。3.dequeue 函数用于从链式队列的开头移除一个元素,并返回该元素的值。

2024-05-09 21:32:30 119

原创 汉诺塔

5.最后,它再次递归地调用自己,将paraN-1个盘子从paraTransi柱子移动到paraDestination柱子,使用paraSource作为辅助柱子。3.否则,它首先递归调用自己,将paraN-1个盘子从paraSource柱子移动到paraTransi柱子,让paraDestination作为辅助柱子。1.这是一个递归函数,用于移动paraN个盘子从paraSource柱子到paraDestination柱子,使用paraTransi作为辅助柱子。

2024-04-28 16:33:22 245 1

原创 累加的递归实现

2.addTo函数在每次递归调用时都打印出当前的调用和返回值。首先,它检查了paraN是否小于或等于0,如果是,返回0,否则,递归地调用自身,但参数减少1,并加上当前的paraN,然后,打印出返回的和并返回这个和。3.clearAddTo函数和addTo函数比较相似,但clearAddTo函数不用打印任何内容。1.addTo和clearAddTo两个函数都使用了递归的方法。

2024-04-28 16:13:44 162 1

原创 数据结构:栈的应用--括号匹配

1.bracketMatching是一个用于检查字符串中括号是否匹配的函数,在这段代码中,遍历了字符串 paraString 中的每个字符,如果字符是左括号('(', '[', '{'),则将其压入栈中,如果字符是右括号(')', ']', '}'),则从栈顶弹出一个字符,并检查这两个字符是否匹配。2.const char*表示一个指向字符常量的指针,也就是说这个指针指向的字符内容是不可变的,实际上在内存中存储为一个字符数组,并且这个数组的内容是不可修改的。如果字符是其他类型,则不做任何操作。

2024-04-27 14:47:53 119

原创 数据结构:栈

2.pop函数从栈中弹出一个字符,首先检查栈是否为空,如果栈为空,则输出错误消息并返回空字符,否则,将栈顶指针减一,表示栈顶位置移动到了前一个位置,返回当前栈顶位置的字符。1.push函数将一个字符压入栈,首先检查栈是否已满,如果栈已满,则输出错误消息并返回,否则,将栈顶指针加一,表示栈顶位置移动到了下一个位置,在新的栈顶位置存储传入的值。

2024-04-26 15:52:33 151 1

原创 数据结构:多项式相加

2.add函数的作用是合并两个多项式链表,代码中使用free来释放不再需要的节点,这有助于防止内存泄漏,由于链表中的节点是通过指针链接的,可以很容易地按照指数对节点进行升序排序。1.这个代码是链表的使用的具体例子,在这个代码中,我们用利用链表结构来存储这些系数和指数,再基于指数值对链表进行排序,并合并具有相同指数的节点。

2024-04-26 15:04:36 265 1

原创 数据结构:静态链表

1.与动态链表相比,静态链表在内存使用上更为高效。因为静态链表是在数组的基础上实现的,所以其节点空间在程序运行前就已经分配好,不需要在运行时动态申请和释放内存。2.在deleteElement函数中,paraListPtr->used[q] = 0相当于释放了这一空间,以此来表示该节点是空闲的。

2024-04-20 19:35:15 289

原创 数据结构:双向链表

双向链表是一种常见的数据结构,它允许我们在任何方向上遍历链表。每个节点都包含两个链接:一个指向前一个节点,另一个指向下一个节点。双向链表提供了从前往后和从后往前遍历数据的能力。这种双向遍历的能力在某些应用中非常有用,比如当需要反向查找或修改数据时。1.在执行insertElement函数和deleteElement函数时,双向链表不需要遍历整个链表,只需要知道所需修改的节点的前驱和后继指针来插入或删除节点。

2024-04-20 11:59:57 133

原创 顺序结构:单链表

/paraHeader 是指向链表头节点的指针,paraChar 是要插入到新节点中的字符,paraPosition 是新节点应该插入的位置。// 初始化一个指针 p,让它指向头节点的下一个节点,即链表的第一个数据节点。//paraHeader 是指向链表头节点的指针,paraChar 是要添加到新节点中的字符。//p 用于遍历链表以找到要删除的节点的前一个节点,q 用于指向要删除的节点。}//用于在链表的指定位置插入一个包含特定字符的新节点。}//在链表的末尾添加一个包含特定字符的新节点。

2024-04-08 19:23:03 772

原创 数据结构:顺序表

//paraListPtr是指向顺序列表结构体的指针paraPosition指的是插入元素的位置paraValue指插入的元素的值。5.函数sequentialListDelete的目的是从顺序列表中删除指定位置的元素,并返回被删除元素的值。4.sequentialListInsert函数的目的是在顺序列表的指定位置插入一个元素。//用于存储当前列表中的元素数量。}//paraLength表示数组的长度,表示要初始化的数据数量。}//输出顺序列表结构体及其内部成员的内存地址。}//检查插入位置是否合法。

2024-04-06 15:32:00 648 1

空空如也

空空如也

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

TA关注的人

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