- 博客(12)
- 收藏
- 关注
原创 数据结构——链队列(作业)
这段代码不仅实现了链队列的基本功能,还蕴含了许多编程中的重要思想和方法,对于理解数据结构、内存管理、模块化编程等方面都有很好的借鉴意义。与链表相似的操作,只是结合了队列的先进先出,front与rear两个指针来控制队列。
2025-05-07 18:43:34
168
原创 数据结构——hanoi汉诺塔(空间复杂度)
空间复杂度不是简单的调用函数次数,而是与递归调用的最大深度相关,在hanoi中最大深度仅仅与盘子数量有关。(最初我一直不明白这里,我就想为什么不是O(2^n),我简单的理解为调用函数的次数,目标是将n个盘子从A——>B,那么就的先将n-1个盘子移到C,将第n个移到B。反正你现在要移动第x个盘子,上一步一定是第x-1个盘子,就是一个递归。1.代码(注意这里我要实现的是A——B,C为中间量)时间复杂度O(n^2)
2025-04-23 21:13:54
206
原创 数据结构——表达式求值(栈的应用)
这个代码坑是特别多啊,还是要自己手动模拟是最好的理解途径。直接使用的STL库里面的栈,pop,push常规操作。思维特别的严密,大量的尝试,找到最简洁的代码。unordered_map的应用很巧妙。
2025-04-18 17:57:41
216
原创 数据结构——括号匹配(栈的应用)
在 bracketMatchingTest函数中最开始tempExpression的类型使用的char *,然后编译器报错(VS2022),然后改成const char *编译通过,这里不能将一个const char的字符串赋值给char。非常形象的体现了栈的先进后出。用#来检查更加方便。
2025-04-18 17:12:38
195
原创 数据结构——栈(作业)
就像一个只有一个开口的桶,最后放进去的东西会最先被取出来。操作完美地体现了这一特性。新元素总是被添加到栈顶(操作),而从栈中取出元素时也是从栈顶取出(空间与时间复杂度均为O(1)。
2025-04-14 10:36:16
182
原创 数据结构——静态链表(作业)
检查链表结尾的循环,它并不关心节点是否为 “空位”(即节点是否已被使用 ),只关心能否按照给定位置找到合适的插入点,即使找到的节点是已使用状态,只要位置合法,就可以进行后续插入操作(调整指针等 )。检查空位的循环,不关心节点在链表中的逻辑顺序,也不关心插入位置是否超出链表范围,只关注能否找到一个可以用来存储新数据的空闲节点。静态链表是通过数组下标(数字)来关联前后节点,而非像传统链表那样使用指针。比如,即使插入位置合法,但找不到空闲节点,插入操作也无法进行。(插入位置是否合法)
2025-04-07 20:29:39
569
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1