- 博客(52)
- 收藏
- 关注
原创 链表的增删改查
int data;// 2Node结构体定义了链表的节点。每个节点包括data:存储节点的数据。next:指向下一个节点的指针。构造函数用于初始化节点的数据,并将next指向nullptr。
2024-09-15 21:01:34 420
原创 线性表的增删改查
SqList;Elemtype是数据元素的类型,这里定义为int。SqList是顺序表的数据结构,其中包含data:指向存储数据的动态数组的指针。length:当前数据元素的数量。capacity:数组的当前容量(即最大能存储的元素数量)。
2024-09-15 19:18:59 285
原创 二叉树的遍历(前序中序后序层序)
中序遍历是左中右,先访问的是二叉树顶部的节点,然后一层一层向下访问,直到到达树左面的最底部,再开始处理节点(也就是在把节点的数值放进result数组中),这就造成了处理顺序和访问顺序是不一致的。再来看后序遍历,先序遍历是中左右,后序遍历是左右中,那么我们只需要调整一下先序遍历的代码顺序,就变成中右左的遍历顺序,然后在反转result数组,输出的结果顺序就是左右中了。这是因为前序遍历中访问节点(遍历节点)和处理节点(将元素放进result数组中)可以同步处理,但是中序就无法做到同步!
2024-08-01 15:29:30 405
原创 简单排序(包括选择排序、冒泡排序、插入排序)
插入排序(Insertion Sort)是一种简单直观的排序算法,其基本思想是将一个序列分为已排序和未排序两部分,初始时已排序部分只有一个元素(即序列的第一个元素),然后逐步将未排序部分的元素插入到已排序部分的正确位置,直到整个序列有序为止。在这段代码中,我们展示了如何实现和使用冒泡排序来对一个整数数组进行排序。冒泡排序的实现通过每次遍历找到当前未排序部分的最大元素,并将其交换到正确的位置,直到整个数组排序完成。选择排序的实现通过找到未排序部分的最小元素,并与当前位置的元素进行交换,直到整个数组排序完成。
2024-07-15 15:30:42 863
原创 基数排序!
/ 1// 2// 3// 4// 5// 6MAXN:表示数组a能容纳的最大整数数量MAXT:表示基数排序支持的最大数字位数,这里假设最大为8位数字BASE:表示基数排序的基数,这里使用十进制:用于存储BASE的不如次方:基数桶,用于在排序过程中临时存放不同基数位的数字:记录每个基数桶中当前存放的数字数量。
2024-06-22 16:00:53 289
原创 堆排序!!
用于将以 curr 为根节点的子树堆化为最大堆。在堆化过程中,会比较当前节点与其子节点的值,并将较大的值交换到当前节点位置。该函数会在堆排序的过程中多次调用。的堆数据结构,其中每个节点的值都大于或等于其子节点的值(最大堆),或者小于或等于其子节点的值(最小堆)。如果可以的话希望大家可以自己手画一遍模拟一下这个过程哦~给你一个整数数组 nums,请你将该数组升序排列。:将输入数组 a 当作堆来进行排序。
2024-06-17 11:02:49 379
原创 桶排序!!
这个函数调用 bucketSort 对输入数组进行预处理,然后从桶中提取出出现频率最高的 k 个元素。这个函数将输入数组根据元素出现的频率进行排序,并将结果存入桶(bucket)中。
2024-06-15 17:40:03 231
原创 快速排序!
i 和 j : 用于遍历和分区数组的索引pivot: 存储选取的基准元素的值a[]: 待排序的数组l: 数组的左边界索引(起始位置)r: 数组的右边界索引(结束位置)
2024-06-12 20:26:11 451
原创 归并排序!
(1) a 和 b 分别表示左边部分和右边部分,将 a 和 b 分别传入 sortList 函数中进行排序(递归调用);(3) 通过比较 a 和 b 的值,逐个选择较小的节点接入到新链表中,直至其中一个链表为空。(2) 创建一个新的头节点 head,以及一个临时节点 tmp 用于构建合并后的链表;给你链表的头结点 head,请将其按 升序 排列并返回排序后的链表。(2) 当链表只有一个元素的时候也不需要排序,返回本身即可;(1) 当链表没有元素的时候不需要排序,直接返回null;
2024-06-10 17:43:01 503
原创 红绿二分查找
在写模版之前我们先搞清楚二分查找是怎样运行的,我们把一个数组分成红绿两种颜色,可以理解为绿色就是符合情况的,红色就是不符合情况的(类似红绿灯,红灯停绿灯行)
2024-06-04 15:55:13 210
原创 Linux笔记
将文件中的zhangsan字符串全部替换为lisi,同时将telephone号码123456改为654321。将文件中的zhangsan字符串全部替换为lisi,默认不会修改文件。删除含有zhangsan字符串的行,默认不会修改文件。取文件的第一列、第三列和最后一列的内容,并打印引号。在touch_a.txt文件的第二行后追加文本。在touch_a.txt文件的第二行插入文本。过滤出含有zhangsan字符串的行。取文件第二行到第三行的内容。单引号变量不识别特殊语法。双引号变量能识别特殊语法。
2024-05-12 17:15:42 516
原创 2024王道408数据结构P144 T17
试设计判断两颗二叉树是否相似的算法。所谓二叉树T1和T2相似,指的是T1和T2都是空的二叉树或都只有一个根结点,或T1的左子树和T2的左子树是相似的,且T1的右子树和T2的右子树是相似的。
2023-08-26 19:09:50 417 1
原创 2024王道408数据结构P144 T16
设计一个算法将二叉树的叶结点按从左到右的顺序连成一个单链表,表头指针为head,二叉树按二叉链表方式存储,链接时用叶结点的右指针域来存放单链表指针。
2023-08-25 20:08:39 294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人