- 博客(23)
- 收藏
- 关注
原创 C++继承(上)
类成员/继承方式public继承protected继承public继承基类的public成员派生类的public成员派生类的public成员派生类的public成员基类的protected成员派生类的protected成员派生类的protected成员派生类的protected成员基类的private成员派生类中不可见派生类中不可见派生类中不可见解释:基类的private无论以什么方式继承都不可见。
2024-09-19 11:30:55 1084
原创 类与对象(4)
我们前面学习了构造函数,可以对成员变量进行初始化。格式:是以“ :”开始,以“ ,”隔开。1.初始化列表在语法上可以理解为每个成员变量定义初始化的地方,不能多次定义,所以每个成员变量只能初始化一次。2.引用成员变量、const成员变量、没有默认构造的类类型变量都必须放在初始化列表进行初始化。否则,编译报错。引用类型必须初始化,不初始化会报错。所以引用成员变量必须放在初始化列表中进行初始化。
2024-07-19 15:46:23 1012
原创 类与对象(3)
在上一篇博客中6个默认的成员函数,其中C++为了增强代码的可读性引入运算符重载,,也有返回值、形参。必须是C++规定的运算符必须有一个类类型参数类成员函数重载: .
2024-07-14 20:48:14 651
原创 二叉树的前序、中序、后序、层序遍历
就比如如下结构: 手搓一棵树代码实现:代码实现:代码实现:5.层序遍历层序遍历,顾名思义,就是一层一层遍历。这里就不用递归了,需要用到队列。采取的思想是父亲带孩子的思想。我们这里要用到队列,所以要有队列的程序。怎么把原先写好的代码放到二叉树的程序里呢?按照以下顺序:第一步:右击源文件,在添加里找到现有项,点击。第二步:在所在文件夹里找到队列的文件夹第三步:选中所要用到的,复制第四步:回到原来的文件夹里,粘贴以上两个 Queue.c和Queue.h第五步:将Queue.h移到头文件
2024-06-01 20:59:18 324 1
原创 【数据结构】队列的实现
队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有的原则。入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为队头。
2024-05-19 20:53:57 308 1
原创 类和对象(1)
因为我们前面说,成员函数是在公共区间内的,pp1和pp2并不会取A1和A2的所属空间去找,而A1的Print函数无成员,而A2的Print函数里使用“_a”,但是pp2不会到A2所属空间里寻找,所以会运行崩溃。Person类中有Init与Print两个成员函数,函数体中没有关于不同对象的区分,那当p1调用Init函数时,该函数是如何知道应该设置p1对象,而不是设置p2对象呢?封装是将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。先来定义一个Person类。
2024-04-28 21:29:55 787 1
原创 C++入门1
格式:namespace加上命名空间的名字,然后“{}”,括号中是命名空间的变量。int a = 0;//a是变量上面报错的代码用namespace代码这样写:int a = 0;//局部//全局a前面有“::”(前面是空),默认访问全局变量a。rand前“main1::”,就是访问命名空间main1中的rand变量。查找方式:编译默认查找:a.当前局部域b.全局域命名空间还可以嵌套int val;int main()
2024-04-12 21:11:06 665 1
原创 排序之【归并排序】
归并排序(Merge Sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合成一个有序表,称为二路合并。
2024-04-09 20:59:44 154
原创 【数据结构】栈的实现(C语言)
栈:是一种特殊的线性表,其之允许在一端插入和删除数据。插入和删除数据的一端叫做栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last in first out)的原则。(就类似于肉串一样)压栈:栈的插入操作叫做压栈/进栈/入栈。入的数据在栈顶。出栈:栈的删除操作。删除数据也在栈顶。
2024-04-02 22:04:49 862 1
原创 设计循环队列
但是会发现,当插入第四个数时,rear会又回到和front一样的位置上,这样就很难判断何时未满和空的情况。此时可以定义一个size,当size==0时为空,size==k为满,但这样给我们写代码加了很多难度,不建议。一看到循环,大家应该很容易想到循环链表,但是循环链表在此题中没有很大优势,我们优先选择数组。再说找尾,找头很好找,但是找尾需要知道rear的上一个节点,那这样循环链表要变为双向循环链表,很麻烦。这样的确很好找头和尾,但是在删除最后一个数据的情况要特殊处理,也很麻烦。综上,我们使用数组进行处理。
2024-03-03 21:23:42 931
原创 交换法排序和选择法排序
图解:分析:首先进行第一轮,假设有n个数,将第一个数和后面所有的数分别比较,如后面的数大,则交换这两个数的位置,共进行(n-1)次比较;这次比较后,就求出了最大值放在最前面。然后进行第二次比较,从第二个数比较,方法和第一次一样。到最后一次,剩下的最后一个数自然就为最小数。
2024-01-01 17:32:03 364
原创 【文件操作相关知识】
如果将数据持续化保存在电脑中,就要使用文件。在程序设计中,我们一般把文件分为两类:程序文件和数据文件。程序文件包括程序源文件(后缀是.c)、目标文件(windows环境后缀是.obj)、可执行程序(windows环境后缀为.exe)。
2023-12-16 18:51:11 50 1
原创 自定义类型:结构体
我们学过很多类型,如int,char,float,char,double等等,它们只能定义单一变量,但是如果描述一个复杂事物,比如书,人等,就要使用结构体了。结构体(struct)是一种用户自定义的可用的数据类型,允许存储不同类型的数据项。结构(体)是一些值的集合,这些值称为变量名3.结构体的创建和初始化 3.1结构体的创建 结构体的声明了解后,就可以创建结构体了。比如,描述一个学生3.2结构体的初始化如果想进一步看此学生的各种信息,就要初始化结构体代码如下:再进一步,可以
2023-12-05 22:33:10 49 1
原创 整数和浮点数在内存中的存储
其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念:大端存储模式:就是指数据的低位字节保存在内存的高地址处,数据的高位字节保存在内存的低地址处。小端存储模式就是指数据的低位字节保存在内存的低地址处,数据的高位字节保存在内存的高地址处。
2023-11-28 22:19:47 50
原创 小小【冒泡排序】
就是对待排的一组数从前往后排序,每次对相邻两个元素进项比较,若大于,则逆置,大于的数往后移;若小于,则不变。2.举例讲解例如:举一串数 --> 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,要把这组数变为1, 2, 3, 4, 5, 6, 7, 8, 9, 10。规律(1)数组有n个元素,共进行(n-1)次循环。(2)每次循环两两进行比较,大的数依次往后移,小数依次往前。3.代码实现int main()//完成逆置i < sz - 1;i++)
2023-11-25 17:29:10 42
原创 有序序列合并
依此类推,到最后会发现,数组arr2中还有数没有打完,所以要进一步把数组中的数打完,同时还要满足i2,输出2。假设arr1和arr2中的数据如下。思路通顺以后,就可以敲代码了。以上就是本题的思路和答案。
2023-11-09 17:39:37 40 1
原创 出土:人生第一篇博客
打算每天学习1-3小时,会根据每天的课程容量去调整时间安排,还要学习英语等一些科目。首先想到的肯定是华为、腾讯等一些大厂,或许最后的结果不尽人意,但要先敢想,才能付诸行动。其实有想过进入一个创业的公司,或许也是一个很不错的选择。本人是双非本科软件工程专业大一新生,刚学C语言没多久,算一个技术上的小白。但是,换句话说,我有很大的进步空间,也希望在以后的时间里能不断地突破自己,冲破舒适区,关关难过关关斩!2、打算在Java和C++中选一个比较适合自己的学习,不管哪一个,都要学好。好了,到这里就结束了。
2023-10-12 09:26:10 46 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人