- 博客(13)
- 收藏
- 关注
原创 库中vector的使用问题
只是库中vector实现与C语言中顺序表的实现有所不同:C++中vector是由三个迭代器(底层是指针T*)。vector相关的标准定义和使用都在中有详细的说明。
2025-05-03 13:37:54
787
原创 C++入门
缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调⽤该函数时,如果没有指定实参则采⽤该形参的缺省值,否则使⽤指定的实参。简单点说:就是把函数的部分参数设定一个初始值,如果传参时,传了该参数(也就是你设定了初始值的参数),那么编译器便会使用你传入过来的参数;如果你没有传该参数,那么编译器会使用你设置的初始值。C++⽀持在同⼀作⽤域中出现同名函数,但是要求这些同名函数的形参不同,可以是参数个数不同或者类型不同。
2025-01-18 19:42:55
1067
原创 c语言中常见的几种排序算法
直接插入排序的思想:将所需要排序的数组看作是一个过程:数组中的元素是被一个一个的插入的。然后插入一个数就将其排成有序的。简单点说:插入第一个时,不需要排序,因为一个数怎么样都是有序的;插入第二个数时,将前俩个数排为有序的;接着是第三个数,看成是刚刚插入数组的,接着对前面三个数进行排列。那大概的思路已经知道,那具体是如何将新插入的数据和之前已经拍好的序列重新排序呢?
2025-01-12 20:09:08
707
原创 通过前序遍历的数组“ABD##E#H##CF##G##“构建二叉树(#表示NULL)
先创建根节点,并进行赋值;再创建左节点,进入左节点函数,接着创建以左节点为根节点的子树,然后创建根节点(也就是最开始创建的根节点的左节点)。以此递推,执行完之后递归回来,之后便创建右节点。与前序遍历二叉树是同样的思路方法。之前,我们在实现二叉树相关方法时,并没有实现二叉树的插入是因为二叉树的插入限制因素太少了,难以做到统一的插入方法的实现,而且实际使用也不经常使用。那我们可不可以根据已经明确遍历方式的数组来构建一个二叉树呢?实现思路:根据前序遍历的遍历思路:根节点,左节点, 右节点。
2024-11-29 13:06:43
230
1
原创 堆的应用(堆排序,top-k问题的高效处理)
堆排序,难道是和名字一样就是利用堆来进行排序吗?这个问题先让读者自行思考,之后会向大家解答。那我们先来讲一讲,在之前构建了堆的算法基础上,利用堆这种数据结构来进行堆排序(以顺序为例)(创建一个真正的堆来进行排序):思路:首先创建一个小堆,将数组中的元素全部插入堆中(因为插入堆中的过程,已将堆按照小堆进行调整),那么此时堆顶就是堆中的最小值,然后接着将堆顶取出从前至后放入数组中。接着删除堆顶(此时又会将堆排成小堆,此时堆中最小的又会在堆顶)。重复这个过程之后,数组中的数据便是按照顺序排列。需要注意的是H
2024-11-29 12:46:16
1610
原创 树的相关知识、二叉树的实现(包含特殊二叉树堆的实现)
/堆的定义int size;//表示是有效数据的个数//表示数组的空间容量}Heap;//堆的初始化//堆的销毁//插入数据//删除堆顶的数据//获取堆顶数据//交换俩个数的值*x = *y;*y = tmp;//向下调整法//向上调整法堆的初始化//堆的初始化堆的销毁//堆的销毁向堆中插入数据判断数组中空间是否足够。插入其中后,仍要保持堆原来的性质(原来是大堆的插入数据之后任然为大堆,小堆依旧为小堆)
2024-11-29 10:29:26
1942
原创 兴趣启迪学习
希望通过平时里点点滴滴的积累和学习来丰富自己的知识库,正所谓:技多不压身。在学习中并没有感觉到有什么压力,学习确实具有挑战性,但每次获得新知识和弄懂一个问题时的豁然开朗感会给我带来强烈的成就感和快乐。当然我们也不可以急功近利,把它当成一种热爱,从平时的积累来丰富自己的经验,在这方面天赋固然重要,但成功的关键也同样在于努力。我叫王俊熙,是一个大一的学生,学的虽然不是计算机相关的专业,但对计算机编程这件事充满兴趣。在未来的学习道路上,我还会遇到很多问题和挫折,但我也不会轻易放弃,会脚踏实地地闯过。
2024-01-17 20:06:59
491
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅