- 博客(19)
- 收藏
- 关注
原创 【C++】内存管理分布
new原理调用operator new函数进行申请空间(但是实质上operator new就是套上了malloc的马甲,所以new调用了operator new实质上又是调用了malloc,new就是一个加强版的malloc,malloc就是new的一个组成部分)。在申请完的空间上调用构造函数,对新的对象进行初始化。delete原理先调用析构函数,完成对象中资源的清理释放。调用operator delete对对象的空间进行释放。new[ ]和delete[ ]同上。
2025-03-19 08:05:29
837
3
原创 【C++】类和对象(上)
类的定义格式跟结构体是很相像的,首先是定义类的关键字class,然后是类的名字加{};括号内的变量称为成员变量,函数和实现方法称为成员函数。为了区分成员变量,可以在变量的左右加一些特殊的符号,比如“year”可以在前面加“_”变成“_year”,这是根据自己的个人习惯或喜好定的。/////////////需避免的情况public://成员函数year=year;day=day;private://成员函数int year;int month;int day;
2024-12-15 14:35:53
1181
2
原创 【C++】入门基础
引用是给变量取别名,而不是定义一个新的变量,引用不会单独开辟一个空间,而是跟它引用的变量共用同一块空间。引用就像是给自己取的外号,大家在生活中应该都有自己的别名,比如说同学叫你的大名,但是在家里父母会叫你的小名,父母给你取的小名就类似于引用,你还是你,但是你还有除大名以外的小名或外号。// 引⽤:b和c是a的别名int& b = a;int& c = a;// 也可以给别名b取别名,d相当于还是a的别名int& d = b;
2024-11-19 23:08:41
882
3
原创 【数据结构】排序算法之希尔排序(ShellSort)
相信很多老铁一眼就能看出来了,插入排序的时间复杂度为O(N^2)(最坏情况下,数据为逆序),最好情况下(数据为顺序)时间复杂度为O(N)。还没看懂的老铁听我细细道来。插入排序就是假设前n个数是有序的,然后将第n+1个数依次与前面n个数比较,假设在其中比n要小但比n-1大,那么就将n往后挪动一位,将要插入的数字插入空位即可。讲了这么多终于是到了希尔排序了,前面说到讲希尔排序之前要先讲插入排序,原因很简单,就是希尔排序和插入排序很相像,但是希尔排序要抽象复杂得多,所以先讲插入排序是方便大家理解希尔排序。
2024-11-10 17:50:04
1174
1
原创 【数据结构初阶】二叉树---链式存储
由于大家可能对二叉树结构的了解不是那么深,为了降低大家理解的难度,我们就先手搓一棵二叉树方便大家接下来的学习。这篇文章的主题是链式结构的存储,那么既然是链式结构存储,想必大家对销毁链式结构的方式并不陌生吧?求叶子结点的个数,首先要知道什么是叶子节点,叶子节点的判定条件是什么?由于前面一篇文章《二叉树—堆》已经讲解过二叉树的一些定义了,在这篇文章就不过多的讲解了,我们直接开始链式结构的讲解!遍历是二叉树上最重要的运算之一,也是二叉树上进行其它运算的基础。学习二叉树的结构,最基础的就是遍历二叉树。
2024-11-03 18:51:25
1227
1
原创 【数据结构初阶】二叉树---堆
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。那么为什么把它叫作树呢?是因为它倒挂着就是树的形状,根朝上,叶朝下。树有一个特殊节点,就是根节点,也就是最顶上的没有前驱节点的那个节点除根结点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i<= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱节点,可以有0个或多个后继节点因此,树是递归定义的。
2024-10-25 22:19:18
1178
3
原创 初阶数据结构-----双向链表的实现
双向链表的结构:节点的数据、指向上一个节点的指针、指向下一个节点的指针我们所说的双向链表的全称其实是“带头双向循环链表”,而单链表的全称则是“不带头单向不循环链表带头:带头指的是当双向链表为空时,此时链表只剩一个头节点;而单链表为空时,就仅仅是一个空链表(在这所谓的头节点跟单链表的头结点不是一个含义,这里的头结点是叫作哨兵位,这个哨兵位没有过多的理解,只是用来充当一个头节点,它所存在的意义是遍历循环链表避免死循环)
2024-10-04 16:08:10
741
3
原创 【零基础学C语言】字符串函数
返回指向 str1 中第一次出现的 str2 的指针,如果 str2 不是 str1 的一部分,则返回 null 指针。:比较两个字符串的ASCII码值的大小(即如果两个字符串前两个字符相同,则比较两者的第三个字符的ASCII码值的大小)此示例在 str 中搜索 “simple” 子字符串,并将该单词替换为 “sample”。:将一个字符串拷贝到另一个目标空间中。:将一个字符串追加到另一个字符串的尾部。:计算字符串中字符的个数。
2024-10-01 14:34:54
832
2
原创 初阶数据结构-----单链表的实现
链表的概念及结构概念::链表是⼀种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。结构:链表的结构跟火车是一样,是一节一节的。车厢之间都需要用挂钩连接着,在季节的变更中,车厢的数量也会随之改变。我们在使用链表存储数据时也是如此,在需要存储数据之时就增添数据,不需要某个数据时就可以将它删除,实现对数据的增删查改。链表存储的数据之间也需要火车挂钩这样的东西连接着,这个东西就是指针域,存储着下一个数据的地址,这样就可以通过一个数据及其指针域找到所有的数据。
2024-09-19 20:30:48
1031
2
原创 初阶数据结构-----顺序表的使用(详解)及通讯录项目
顺序表的底层结构就是数组,对数组的封装,实现了常用的增删改查等接口,换句话说就是对一个数组可以实现增删查改等操作。静态顺序表和动态顺序表。静态顺序表概念:使用定长数组存储元素空间大小固定,给少了空间不够用,给多了造成空间浪费。动态顺序表:动态顺序表则与静态顺序表相反,动态顺序表是按需申请空间存储数据,给一个数组存储数据,当给的数组空间不够时即可向堆申请足够大的空间去存储数据,一般在空间不够时申请原空间的2~3倍的空间大小,按需申请即可。//动态顺序表---按需申请空间int size;
2024-09-07 20:47:18
610
原创 初阶数据结构-----顺序表的使用(详解)及通讯录项目
顺序表的底层结构就是数组,对数组的封装,实现了常用的增删改查等接口,换句话说就是对一个数组可以实现增删查改等操作。静态顺序表和动态顺序表。静态顺序表概念:使用定长数组存储元素空间大小固定,给少了空间不够用,给多了造成空间浪费。动态顺序表:动态顺序表则与静态顺序表相反,动态顺序表是按需申请空间存储数据,给一个数组存储数据,当给的数组空间不够时即可向堆申请足够大的空间去存储数据,一般在空间不够时申请原空间的2~3倍的空间大小,按需申请即可。//动态顺序表---按需申请空间int size;
2024-09-07 20:44:01
1038
2
原创 C语言入门---求n的阶乘
递归的目的是把一个大的问题细分为更小的子问题,我们只需要知道递归函数的功能即可,不要把递归一层一层的拆开来想,如果同时调用多次的话这样你很可能会陷入循环而出不来。此过程的每一次结果,都是由对前一次所得结果施行相同的运算步骤得到的------换句话说就是通过循环反复的方法进行求值,而每一个得到的结果都是需要建立在前面一次计算结果的基础上得出来的。这种递归还是很简单的,我们求f(5)的时候,只需要求出f(4)即可,如果求f(4)我们要求出f(3)……好了,求n的阶乘的讲解就到这了,如果有写得不好的地方。
2024-07-22 10:46:51
454
1
原创 我的第一篇博客-----自我介绍
大家好,我是小渝,目前是一名普通本科计算机类的大一学生,我个人爱好是打篮球,可惜由于种种原因已经很少接触了,但是我相信总有一天我会重拾这份热爱。这是我在优快云的第一篇博客,也同样是人生中的第一篇,如有不好的地方请提出你宝贵的建议,我会尽力去改。希望自己能够在优快云的帮助和见证下,自己能成为一名成功的技术人员,同时能够为未来初入IT行业的小白们提供到些许便利。最后再送给自己一句话:“梦想一旦被付诸行动,就会变得神圣。铁铁!
2024-04-21 23:12:38
540
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人