- 博客(14)
- 收藏
- 关注
原创 二叉树的链式表示及实现(实验6--作业)
这段 C++ 代码实现了二叉树的一系列操作,包括创建二叉树、前序遍历、中序遍历、后序遍历、层次遍历、中序非递归遍历、求二叉树深度、交换左右子树、统计节点个数以及销毁二叉树等功能。
2024-10-28 19:44:52 200
原创 C++实现单向链表操作(实验3--作业)
单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据域和一个指向下一个节点的指针域。这段 C++代码实现了一个单向链表的多种操作,包括初始化、插入、删除、查找、排序、合并和逆置等功能。
2024-09-10 20:09:37 1775
原创 C++实现顺序表操作(实验2—作业)
这段 C++代码实现了顺序表的初始化、插入、打印、置空、销毁、查找、删除、排序以及求并集、交集和差集等操作,并通过在主函数中对两个顺序表进行一系列操作来展示这些功能,最后还实现了在并集中查找特定元素的功能,并在结束时销毁了所有顺序表。可以使用指针来访问动态数组中的元素,通过重新分配内存来实现顺序表的操作。使用动态数组实现的顺序表的优点是可以动态调整大小,缺点是访问速度相对较慢。可以使用下标来访问数组中的元素,通过将元素插入或删除来实现顺序表的操作。在C++中,可以使用普通数组或者动态数组来实现顺序表。
2024-09-04 21:22:07 516
原创 trie树(字典树) 洛谷 P3879 [TJOI2010] 阅读理解
我之前发布了关于算法实现的文章,Trie树和KMP算法都是用于字符串匹配的算法,它们可以在一定程度上互相补充和优化。👇👇👇洛谷P3375 【模板】KMP_洛谷 p3375-CSDN博客算法的原理在上述博客中已经讲清,本篇博客用来讲解trie树算法正如它字面意思,把字符串按照字典的顺序存放在一棵树上,通过每个单词和其他单词的公共前缀把他们连接起来,如图所示如图所示: apple: appear: cat: bus: banana。
2024-08-28 18:44:40 768
原创 动态规划之0-1背包问题&&完全背包问题
经过优化空间复杂度的过程,我们发现 01背包和完全背包问题优化的主要点是搞清楚一维的dp数组对应的值是在哪一层所求出来的,然后再对应其二维dp数组的状态转移方程即可所以在做题时 先根据闫式dp分析法按照状态表示和状态计算分析根据题目中的限制写出状态转移方程 再根据状态转移方程判断是否在第 i 层用的都是 第 i 层或第i-1层的数据,进而根据实际情况选择正确的循环方向,进而优化空间复杂度t=N7T8t=N7T8。
2024-08-19 21:58:44 976
原创 归并排序原理(洛谷 P1908 逆序对 应用)
然后 i 指向 3,j 指向 2,此时贡献出了两个逆序对(3和2 7和2),因为3 7是有序的,较小数在前面(3),3可以与右区间构成逆序对,更大的数 7 自然也可以由此得出规律,当 i 所指向的左半边的数大于 j 所指向的右半边的数时,贡献出 (mid - i + 1 )个逆序对(mid是左区间最右侧对应下标,i 是左区间对应的当前元素的下标,+1是表示个数,消除索引偏移),完成这一部分后,将右区间中的 2 存入临时数组中,j 指针指向 4 ,然后进行下一步操作。的思想,将一个无序的数组按照中点。
2024-08-13 21:43:24 1027
原创 P3374 【模板】树状数组 1
树状数组的单点修改和区间查询的时间复杂度均为 O(log n)lowbit() 运算是某个数的二进制表示最低为1 的位和它后面的0构成的数值得出的过程如下先按位取反 ~ 再+1得到的数再进行按位与 & 操作由于计算机存储时候用的是补码,所以取反(~)再加一(++)后的数实际就是这个数的倒数本身所以lowbit(n) = n & (~n+1) = n & (-n)
2024-08-11 22:07:33 598
原创 洛谷P1162 填涂颜色 P1506 拯救oibh总部
P1506 拯救oibh总部 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)P1162 填涂颜色 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)可以先用P 1506练手。
2024-08-08 16:17:41 258
原创 关于C语言函数库中qsort的理解与模拟实现
qsort函数是C语言函数库中的常用的排序函数,它的底层逻辑是快速排序,下面我们将理解下它并且尝试用冒泡排序为例子尝试模拟实现它。
2024-02-01 18:31:07 2029
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人