自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 类和对象(下)

初始化列表、static成员、友元函数友元类、内部类、匿名对象

2024-07-31 00:23:03 895

原创 const成员、取地址及取地址操作符重载

const修饰的成员函数

2024-07-30 22:12:33 292

原创 赋值运算符重载

运算符重载,赋值运算符重载,Date类的实现

2024-06-22 19:46:23 793

原创 类和对象(中)

类的6个默认成员函数构造函数概念特性析构函数概念特性拷贝构造函数概念特征

2024-05-20 11:06:55 591

原创 C++类与对象(上)

类的引入类的定义类的两种定义方式:类的访问限定符及封装访问限定符封装类的作用域类的实例化类对象模型如何计算类对象的大小结构体内存对齐规则:this指针

2024-05-15 17:00:28 973

原创 内联函数+auto关键字(C++11)+指针空指针nullptr(C++11)

内联函数、auto关键字(C++11)、指针空指针nullptr(C++11)详解

2024-05-14 16:00:40 758

原创 C++引用详解

C++引用

2024-05-10 15:57:54 740

原创 刚买的云服务器(阿里云) 玩玩Linux指令 rm -rf /*

刚买的云服务器(阿里云) 玩玩Linux指令 rm -rf /*

2024-04-24 16:51:42 161

原创 Linux基本指令

ls,pwd,cd,touch,mkdir,rmdir,rm

2024-04-24 15:43:51 550

转载 Linux入门

Linux的发展史,历史背景

2024-04-23 21:46:29 688

原创 C++入门

命名空间、C++输入输出、缺省参数、重载函数、为什么C++支持重载函数而C语言不支持重载函数

2024-04-23 19:45:30 672

原创 数据结构八大常见的排序

常见排序算法分类1.插入排序2.希尔排序(缩小增量排序)3.选择排序4.堆排序5.冒泡排序6.快速排序(递归和非递归)7.归并排序

2024-03-28 20:23:47 1069

原创 数据结构——快速排序的三种方法和非递归实现快速排序

快速排序的三种方法hoare法,挖坑法,前后指针法,快排的优化、快速排序的非递归法

2024-03-28 10:00:01 846

原创 数据结构——二叉树

1.树的概念1.1树的概念1.2 树的相关概念树的表示1.4 树在实际中的运用(表示文件系统的目录树结构)2.二叉树概念及结构2.1概念2.3 特殊的二叉树:2.4 二叉树的性质2.5 二叉树的存储结构1. 顺序存储2. 链式存储3.二叉树顺序结构3.1 二叉树的顺序结构3.2 堆的概念及结构3.3 堆的实现4.二叉树链式结构及实现

2024-03-10 12:12:44 2016

原创 二叉树链式结构及实现

数据结构和接口函数新结点的创建和手动创建一个二叉树前序遍历中序遍历后序遍历二叉树的高度二叉树的节点个数二叉树的叶子节点个数二叉树第k层节点个数查找二叉树的某个节点层序遍历判断二叉树是否为完美二叉树

2024-03-10 12:09:59 841

原创 数据结构——Top-k问题

堆这里浅谈topk问题,堆排序,直接建堆法,建k个数的小堆法(空间大小取决于k,具有空间优势),方法二方法三时间复杂度大致一样

2024-03-03 05:53:56 1770

原创 单链表OJ题

移除链表元素

2024-02-27 13:05:08 393

原创 数据结构二叉树顺序结构——堆的实现

向上调整、向下调整、二叉树顺序结构、堆的实现

2024-02-23 10:50:17 2128

原创 数据结构—循环队列

为了能使下标Qrear = Qfront来区别队空还是队满,我们常常认为以下左图为队空,右图为队满的情况。左图初始空队列状态,我们认为Qrear=Qfront=0,右图此时满队列的状态,Qrear=7,Qfront=0。头删原理就是,自增front,同样在进行头删的时候,因为front的自增,在动态数组a[k]到a[0]之间的过渡也需要对front取值范围的限制。因为这是循环队列,在经过不断的插入删除的过程中,rear和front会不断地变换位置,所以判空条件就是判断他俩是否相等而不是他俩是否都为0。

2024-02-01 16:32:51 672

原创 数据结构队列

数据结构队列

2023-09-05 21:03:12 137 2

原创 数据结构——栈

2023-09-05 14:33:10 486

原创 带头的双向链表

带头的双向循环链表

2023-09-04 00:01:26 77

原创 力扣:随即指针138. 复制带随机指针的链表

复制带随机指针的链表

2023-09-03 16:41:03 260

原创 数据结构链表——单链表

/数据类型//数据//指针}SLTNode;//结构体类型这里结构体数据类型的命名“SLT”为“Sequence List”的缩写 “Data”代表"数据",“Type”代表类型。

2023-08-10 20:13:10 148

原创 数据结构顺序表

尾删看似简单但是有坑,你是不是认为将size自减1就ok了,大体思路是这样的,但是若数组中有3个数据,但是你执行了4次尾删,那么size就会为-1,这时候在对数组进行使用时,就会造成数组越界,所以我们要对size进行限制。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。头删比较简单,只要后从前往后遍历,将后一个元素把前一个元素覆盖就好了。和头删原理相同,但是只要删除就要考虑size的范围,不能使数组越界。

2023-08-03 00:23:31 66

原创 数据结构空间复杂度

空间复杂度的理解

2023-07-30 16:39:31 325

原创 时间复杂度

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。找到某条基本语句与问题规模N之间的数学表达式,就是算出了该算法的时间复杂度。

2023-07-29 09:41:17 223

原创 C语言实现:offsetof(OFFSETOF)宏的实现

【代码】C语言实现:offsetof(OFFSETOF)宏的实现。

2023-07-17 17:14:22 107 5

原创 C语言实现:找出单身狗问题

所以将原数组所有元素异或,成对的元素异或等于0;那么两个单身狗异或的结果的二进制位中为1的那一位,代表这两个数的那一位不同。2、结合律: a ^ b ^ c = a ^ ( b ^ c )3、对于任何数x,都有: x ^ x = 0,x ^ 0 = x。人家别人都两两在一起,就你自己,那你不是单身狗是啥,哈哈哈哈哈。4、自反性: a ^ b ^ b = a ^ 0 = a。所以我们利用异或原理直接让数组中所有元素相互异或即可。这两个数组中分别有一只单身狗,其余都是成对存在。因为相同的两个数异或等于0,

2023-07-17 17:03:14 128

原创 条件编译、头文件的理解

头文件的包含,条件编译

2023-07-16 20:14:28 73 1

原创 C语言#define和宏

#define和宏的定义、#和##的应用 使用#把一个宏参数变成对应的字符串;##可以把位于他两边的 符号合成一个符号。宏的副作用;宏和函数的对比

2023-07-16 17:30:48 167

原创 详解编译+链接

编译分为几个阶段

2023-07-13 23:29:29 42 1

原创 文本文件和二进制文件、文件读取结束的判定、文件缓冲区

文件缓冲区 二进制文件 文本文件 feof的使用误区

2023-07-09 18:59:39 206 2

原创 文件的随机读写:fseek;ftell;rewind函数详解

把 fp 指针退回(左)到离文件当前位置 100 字节处;把 fp 指针移动(右)到离文件当前位置 100 字节处;把 fp 指针退回(左)到离文件结尾 100 字节处。把 fp 指针移动(右)到离文件开头 100 字节处;根据文件的指针的位置和偏移量来定位文件指针。让文件指针的位置 回到文件的起始位置。

2023-07-07 14:21:08 114 2

原创 scanf/fscanf/sscanf printf/fprintf/sprintf的对比

sscanf详解;scanf/fscanf/sscanf printf/fprintf/sprintf的对比

2023-07-07 10:54:22 74 3

原创 C语言文件操作

文件的打开方式;fgetc函数;fputc函数;fgets函数;fputs函数;fprintf函数;fscanf函数;二进制读取和写入函数:fread函数fwrite函数;C语言中的三种流标准输入stdin(键盘);标准输出stdout(屏幕);标准错误stderr(屏幕)

2023-07-05 23:27:44 60

原创 关于qsort函数的回调函数与嵌套结构体动态内存的bug

我在实现动态通讯录的时候,按名字排序通讯录信息的时候,我想调用库函数qsort,刚好再复习一下他的使用方式,当时我是自己模拟了与库函数的qsort一样的冒泡排序Bubble然后就出了bug首先这是我创建的结构体int age;} PeoInfo;//动态版 typedef struct Contact {//用指针来指向动态开辟空间的位 int sz;//当前已经存放的信息个数 int capacity;//可存放的最大的容量 } Contact;初始化函数。

2023-07-02 12:55:12 61 2

原创 C/C++程序的内存开辟以及柔性数组

如果我们的代码是在一个给别人用的函数中,你在里面做了二次内存分配,并把整个结构体返回给用户。所以,如果我们把结构体的内存以及其成员要的内存一次性分配好了,并返回给用户一个结构体指针,用户做一次free就可以把所有的内存也给释放掉。有了这幅图,我们就可以更好的理解在《C语言初识》中讲的static关键字修饰局部变量的例子了。但是被static修饰的变量存放在数据段(静态区),数据段的特点是在上面创建的变量,直到程序。实际上普通的局部变量是在栈区分配空间的,栈区的特点是在上面创建的变量出了作用域就销毁。

2023-07-01 16:30:44 48

原创 常见的动态错误

动态内存分配常出现的错误以及一下经典例题

2023-06-29 12:27:43 51 1

原创 动态内存管理

void * malloc(size_t size) //size为要分配的空间大小这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。-返回值的类型是void*,所以maolloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。

2023-06-28 14:58:01 38 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除