- 博客(33)
- 收藏
- 关注
原创 数组相关内容
了解数组的基本使用办法:初始化、查找、统计元素个数等等。对于数组,最关键的就是下标!至于下标为什么不从1开始,而是从0开始,这与计算机底层对于地址查找的逻辑有关,感兴趣的同学可以了解一下。
2025-04-19 15:24:02
966
原创 C语言数据类型和变量
了解C语言中常见的数据类型。了解sizeof。算数操作符、赋值操作符和单目操作符。强制类型转化以及 printf 和 scanf 的相关内容。
2025-04-19 09:12:10
763
原创 C语言常见概念
C语⾔中有⼀批保留的名字的符号,⽐如:int 、 if 、 return ,这些符号被称为保留字或者关键字• 关键字都有特殊的意义,是保留给C语⾔使⽤的• 程序员⾃⼰在创建标识符的时候是不能和关键字重复的• 关键字也是不能⾃⼰创建的。
2025-04-19 09:03:45
557
原创 堆排序(建堆用向上还是向下?)、topK问题
堆排序,利用了堆的特性--最大或者最小的值在数组首位。但是选次大的时候,最大值霸占了首位,就需要重新建堆,依次往复。为了解决这种情况,每次选出较大的数,首尾交换,然后再规定堆的范围,然后继续选,这样做的目的就是为了保护堆结构。topK问题,利用了堆中数据,遍历完一遍数组,堆中留下的就是我们想要的数据。总结两句话就是:升序建大堆,降序建小堆;top前k建小堆,top后k建大堆。
2024-12-08 19:26:13
188
原创 内存管理--new和delete
new和delete在malloc和free的基础上,增加了抛异常的措施,而且代码更简洁了。最重要的是,对于自定义类型(类),new和delete会自动调用构造和析构。还有多4B的问题、定位new表达式。
2024-12-01 17:56:37
770
原创 完全二叉树的应用--堆
1.堆是完全二叉树的应用。 2.堆中数据,父子的下标有什么关系? 3.向上调整建堆从哪开始,从哪结束? 4.向下调整建堆从哪开始,从哪结束?
2024-12-01 17:56:25
1205
原创 类和对象--下--static成员、友元、内部类、匿名对象、拷贝对象的优化(了解)
1.static的作用。对于成员变量、成员函数、全局函数的修饰意义都不同。2.友元就是给访问权限,想让谁访问,就将其设为友元。3.内部类的实践意义,仅供外部类使用。4.匿名对象的作用域是一行。5.编译器对拷贝的优化。
2024-11-29 13:04:24
847
原创 类和对象--中--初始化列表(重要)、隐式类型转化(理解)、最后两个默认成员函数
1.初始化列表、构造、拷贝构造 三者之间的区别和联系。初始化列表可以很好的控制,想给什么值就给什么值。2.隐式类型转化到底有什么用? 简介代码,可读性增强。3.最后两个默认成员函数对 “类” 做了什么操作? const成员函数把成员函数的参数权限缩小。另一个没什么实践价值。
2024-11-26 21:31:07
1150
原创 类和对象--中--运算符重载、日期类实现(重要)
运算符重载是具有特殊名字的函数,他的名字是由operator和后⾯要定义的运算符共同构成。和其 他函数⼀样,它也具有其返回类型和参数列表以及函数体。这种函数一般直接在成员函数里面。和函数的格式一样,只不过函数名有要求:operator 运算符.
2024-11-24 19:49:02
1319
原创 类和对象--中--拷贝构造、赋值拷贝(赋值重载)、三种赋值的区别
构造是对1个对象进行初始化。拷贝构造是用1个对象对另一个对象进行初始化。赋值拷贝是初始化完的两个对象,进行值的覆盖。
2024-11-24 11:13:17
1296
原创 类和对象--中--构造、析构
那么话又说回来。什么样的就是构造函数的受益者?总结:1.对象实例化时,如果成员变量是内置类型,且没有显式构造函数。那么构造函数的结果,由编译器决定。(上面图中,有时是随机值,有时是0)2.对象(Myqueue)成员变量都是自定义类型(Stack),且在该自定义类型(Stack)中,有对应的显式构造函数。3.构造函数归根到底,还得手搓。构造函数只是自动调用。
2024-11-21 17:09:23
810
原创 类和对象(上)--类、类的实例化(对象)、this指针
class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或 者成员函数。
2024-11-19 21:49:03
1080
原创 设计循环队列
既然循环,什么时候是满的,什么时候是空的?用什么实现,数组还是链表?肯定需要两个指向:一个指向头,一个指向尾。问题一:队列满和队列空的判断冲突了。问题二:只有一个节点和没有节点的时候,这两个指向都相同,需要处理一下。
2024-11-18 19:26:42
687
原创 栈和队列的实现
栈和队列的出现,是为了解决一类问题,这类问题都有共性。栈对应了二叉树的深度优先搜索(DFS),队列是为了广度优先搜索(BFS)。因为栈是先进后出,与二叉树的后序遍历有相同之处;而队列是先进先出,与二叉树的前序遍历有相同之处。而数据的先进先出还是先进后出,由具体的问题来分析使用。
2024-11-17 22:08:31
417
原创 C++入门--函数重载、引用
引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间, 它和它引⽤的变量共⽤同⼀块内存空间。(这里共用内存的类型,和联合体有些类似。)(引用和指针类似,但是从代码角度,引用比指针好理解一些)
2024-11-17 17:46:52
947
原创 数据结构->第一章->顺序表->链表
主要是二级指针的理解。为什么要用二级指针。以及本文反复提及到的 “要修改什么,就用什么的地址”,实在理解不了二级指针的话,就先记住这句话吧。
2024-10-21 00:07:04
314
原创 数据结构->第一章->顺序表->线性表
扩容问题!!!初始化、销毁、查看(打印)顺序表的尾部、头部插入顺序表的尾部、头部删除指定位置之前插入数据、删除指定位置数据
2024-07-15 18:34:01
313
1
原创 用冒泡排序来实现qsort函数
(注意引用strcmp的头文件 ‘ #include ’ )总结:用冒泡排序来模拟qsort函数,关键是:如何判断是否要交换这对数据,以及怎样用冒泡排序来实现这对数据的交换。
2023-12-08 21:37:11
586
1
原创 qsort的 数组排序 和 结构体排序
对于数组的排序,本质是比较元素的大小。对于结构体的排序,如果是整型,那也是比较元素的大小,如果是char类型,比较的是ASCII 值。从本质来看,就是比较数据在内存中的存储值,谁的值更大。那么就又有一个问题,数据在内存中如何存储?
2023-12-06 11:21:46
1135
1
原创 求n的阶乘
/‘i’是形参,‘a’是实参// ‘ i ’ 求几的阶乘//阶乘的值为多少return 1;//‘0’的阶乘是1int j = 0;int k = 1;for (j = 1;j <= i;//求各个阶乘的值//将各个阶乘的值累加起来,就是我们最后想要的值return sum;//i>1时,返回值为sumint main()int a = 0;//'a':要求的值printf("请输入需要求几的阶乘:");//'a'是实参return 0;
2023-12-02 20:37:51
433
原创 数组的学习
注:二维数组初始化的时候,行可以为空,但是列不能为空。-----------引用时,要加 ' #include '。----------引用时,要加 ‘ #include ’ 头文件。以下这个代码,是一个遍历查找,一个一个的比对目标值(通过scanf函数输入的值)。这两者的数据类型分别是:int [4] 和 int [5]。7. sizeof函数:计算的是变量或者类型的长度大小,单位是字节。1. 例如,如下的代码,虽然代码不同,但表示的是一样的意思。
2023-10-25 19:28:34
70
1
原创 牛客网c练习题
2)getchar()是一个单个获取字符的函数。----当没有第二个getchar()时,会多输出一 个*,因为摁回车的时候,相当于输入了一个‘LF’,LF+32=42(*)。代码解析:1)当提到大小写字母转化,应当第一时间想到ASCII表,(A+32=a)代码解析:1)“%*c”的含义,把输入中间的任何字符,解析后就被丢弃。代码解析:倒序输出一个十进制整数,其实也就是把 ’% 10’的余数逐个输出。3)putchar()是一个输出字符函数。4.输入学号,成绩。1.倒序输出一个十进制整数。
2023-10-21 22:17:01
286
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人