自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++中stack类和queue类

前面我们讲解了C++中List,Vector,和string类的使用和底层逻辑,今天我们来利用前3个类,来搭建栈和队列,在讲解前,我们先来引入一个容器适配器的概念这次讲解了C++中栈和队列的使用,下次对模板在做一点补充。

2024-09-24 11:00:00 1823 66

原创 C++ List (带你一篇文章搞定C++中的List类)

经过前面两个容器的讲解,其实已经对很多接口的使用都了解的差不多了,容器之间接口的使用真的都是大体相同的,但是底层的实现是不同的,今天我们来看看列表是如何实现这个功能的,在讲解列表的实现之前,我们先要再次来讲解这个迭代器链表容器结构到这里就结束了,下一章,我们将引入一个适配器的概念去完成栈与队列的知识。

2024-09-18 09:30:00 1393 75

原创 C++vector类 (带你一篇文章搞定C++中的vector类)

我们前面讲解了标准库里的string类,讲解了他的实现,用法,现在我们来讲解另一个在标准库中的类,vector类vector就像数组一样,向量对其元素使用连续的存储位置,这意味着也可以使用指向其元素的常规指针上的偏移量来访问它们的元素,并且与在数组中一样高效。但与数组不同的是,它们的大小可以动态变化,其存储由容器自动处理。可以把vector理解成C语言中,学过的数据结构中的顺序表。

2024-09-13 17:20:50 1524 72

原创 C++ String类(带你一篇文章搞定C++中的string类)

我们前面对C++的泛型编程做了了解,然后我们继续来说,C++标准库里string类string类是C++标准库里的一个类,为什么学习string类,因为C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列 的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户 自己管理,稍不留神可能还会越界访问。其实在标准库还有很多这里内容,下次在一一讲解。

2024-09-02 10:45:00 950 188

原创 C++模板初阶

我们前面讲了C ++中内存的管理,对比了他和C语言动态开辟空间和内存之间的优点与缺点,那为什么C++比C语言要好很多呢?今天我们来学到这个模板概念就一个更深刻的认知了。说到模板就要提到泛型编程在C++中模板里面还有很多的性质和知识,在我们学了更多的知识之后再进行补充和讲解。

2024-08-28 09:00:00 1300 55

原创 C++的内存管理

前面完成了对日期类的实现和习题,现在我们来看看C++中内存的管理和C++的模板这个特性一.内存的划分在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。

2024-08-26 22:23:56 1199 58

原创 日期类的习题

【代码】日期类的习题。

2024-08-04 22:22:08 385 12

原创 日期类的实现

我们前面讲了类与对象的知识、今天我们就用类与对象的知识来完成一个应用,日期类,可以把它理解成一个日期计算机,可以来计算从今天到昨天或者是到一些指定的天数,需要好久等一些运算。一、日期类的.h文件我们先来大致看一下这个头文件里有一些什么东西需要我们实现,这里我们用到了友元函数在后面的输入插入流的时候,我们需要用到有原函数的声明去访问那里面的私有成员,还有很多的运算符重载等着我们去构造,还有构造函数等。

2024-07-23 10:00:00 1453 81

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

类的默认成员函数,默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。一个类,我 们不写的情况下编译器会默认生成以下6个默认成员函数。​这次是对之前的类与对象的一个补充,完善了一下类与对象的实现。

2024-07-18 16:52:40 1287 116

原创 二叉树习题讲解(对称,翻转,子树,还原)

补充了一些关于二叉树的习题,和自己的一些做题经验。

2024-06-16 19:55:47 897 75

原创 C++类与对象(拷贝与类的内存管理)

我们前面讲起了一些关于C++中类与对象的一些语法,构造函数C构函数初始化成员列表等等,也讲了面对对象的程序设计方法和面对过程的程序设计方法有什么区别,我们这次就主要针对类与对象的拷贝和一些存储内存的角度继续了解这次我们主要讲解了对象的动态开辟和释放对比C语言的不同,和前面所讲到的析构和构造的一个升华,是多对象的析构和构造,还讲了C++独特的浅拷贝和深拷贝以及C++类的一些内存管理如类的静态成员变量静态成员函数和this指针。

2024-06-10 02:18:08 1978 140

原创 C++类和对象

前面最开始浅浅的讲解了一下C++的类和对象,现在来详细的讲解类和对象,来了解面对过程编程和面对对象编程的本质区别过程就是函数对象具有方法和属性今天才算是刚刚的进入C++的类和对象,我们讲了C++中面对对象的程序设计方法和面对过程的程序设计方法之间的区别,也讲解了一些C++的机制,构造函数机构函数初始化成列表。我们下次就再讲解在C++中的开辟空间和释放。

2024-06-02 22:36:02 1510 117

原创 初始C++(类与对象)

之前讲c++的命令空间和第一个程序的运行,继续讲解一下c++的语法,然后开始进入类和对象的学习内联函数本身也是一个真正的函数,唯一不同之处在于会在适当的地方向预处理宏一样展开,所以不需要函数调用开销。public://访问控制符 private pretected//成员变量//属性//成员函数//方法这次我们讲解了C++的语法引用,内联函数,类和对象等下次就要正式进入C++的类和对象了,这次大改的了解了一下,下次就要真正的感受到面对对象编程的魅力了。

2024-06-01 19:23:56 1409 100

原创 C++(第一个C++程序)

所以在定义命名空间的时候,一定不能写到其他函数里面嵌套是可以的,但是注意访问操作符的使用return 0;今天我们主要讲解了C++的第一个程序里面所有的语法,给c++开了一个头,c++的学习任重而道远,一起努力吧。

2024-05-25 17:29:39 1045 121

原创 汉诺塔问题和爬楼梯(递归)

这两个问题是很好的递归问题,递归难就难在写出来简单,但是真正理解起来还是有一定的思考量的。

2024-05-10 15:19:36 1005 152

原创 迷宫问题(最短路径问题)

我们接着之前讲过的初阶迷宫问题,这次我们来说说高阶迷宫问题,高阶的迷宫问题难在有多条路径去选择,所以我们现在需要做的不是找到路径而是找到最短的路径地下迷宫_牛客题霸_牛客网 (nowcoder.com)小青蛙有一天不小心落入了一个地下迷宫,小青蛙希望用自己仅剩的体力值P跳出这个地下迷宫。为了让问题简单,假设这是一个n*m的格子迷宫,迷宫每个位置为0或者1,0代表这个位置有障碍物,小青蛙达到不了这个位置;1代表小青蛙可以达到的位置。

2024-05-08 20:54:23 1434 110

原创 迷宫问题(深度优先遍历,回溯算法)

前面我们学习了很多数据结果相关的知识,这次我们就来利用之前所学的和c语言来学习一下迷宫问题迷宫问题_牛客题霸_牛客网 (nowcoder.com)初阶迷宫问题的思路想通了就很好写了,我觉得最难的开辟二维数组和搭建那个栈,进阶的迷宫问题,他会设置一个最短路径的选择,这个下次在讲。

2024-05-07 21:50:05 1033 86

原创 贪吃蛇(下)游戏的实现

我们前面讲解Win API的知识和贪吃蛇初始化和地图的绘制,这次来完结贪吃蛇,把他项目实现讲解贪吃蛇游戏把C语言学过的很多知识都全部运用上了,甚至还讲起了一些设置台控制的一些知识,完整的写出来还是能收获到不少的东西的。

2024-05-05 13:54:40 1477 61

原创 贪吃蛇(上)Win32API

贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本。既简单又耐玩。该游戏通过控制蛇头方向吃蛋,从而使得蛇变得越来越长,使用C语言在Windows环境的控制台中模拟实现经典小游戏贪吃蛇。在实现这次贪吃蛇小游戏的时候,我们需要应用到一些关于Win32 API的一些知识,所以我们把贪吃蛇游戏的实现分为上下两篇来讲,商品,我们主要就是讲解Win32 API的知识这是主要讲解了Win32 API的使用,后面在讲解贪吃蛇的实现。

2024-05-05 00:44:29 848 52

原创 编译和链接

我们学习代码已经有一段时间了,但是我们有没有想过我们写的代码是怎么样变成可执行程序的呢?或者是这个过程中到底发生了一些什么事情,今天我们就来好好的讲解一下C语⾔设置了⼀些预定义符号,可以我们是直接使⽤,预定义符号也是在预处理期间处理的__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义。

2024-05-03 23:40:14 1187 75

原创 斐波那契数列

很多人都对递归有了解,但是为尾递归很少,所以这次来专门讲一讲关于尾递归的一些问题。如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。因为在一些题目的做法中,我们可以发现递归的使用有局限性,有时候会占用相当大的空间。比如斐波那契问题,代码很容易用递归去写,但是浪费了大量的内存,一个数会重复计算多次,所以我们来使用尾递归。这里引用一个我看别人说的一句话,我认为非常对普通递归的结果是返回值,尾递归的结果是参数。完全可以这样理解。尾递归的优化原理。

2024-04-28 13:00:00 1232 75

原创 每日一题(随机链表的复制)

给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的。深拷贝应该正好由n个节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。。例如,如果原链表中有X和Y两个节点,其中。那么在复制链表中对应的两个节点x和y,同样有。返回复制链表的头节点。用一个由n个节点组成的链表来表示输入/输出中的链表。

2024-04-25 13:29:56 853 87

原创 分割链表和回文链表习题

/开辟哨兵位的头结点//当cur走完,循环停止//如果小,放入less链表中//如果大于等于,放入greater链表中else//最后把链表合并//解开已经有连好的存在//存储哨兵位前的元素,释放哨兵位的头结点。

2024-04-24 01:38:32 1119 63

原创 快排非递归与计数排序

计算机在实现递归时会调用系统的堆栈,这很消耗计算机内存资源,所以采用非递归算法的本质就是手动模拟系统的堆栈调用来降低computer资源的消耗,有时候还会造成栈溢出所以这些厉害的排序我们都要掌握他的非递归,然后在在补充一个计数排序。初级的排序算法就是这些了,还有一些不常用的和一些难的,等学了更多的知识我们再去了解。

2024-04-22 12:07:58 1452 74

原创 快速排序详解

前面讲了很多的排序算法,今天我们来讲一下快速排序的多种方法快速排序快速排序是对冒泡排序算法的一种改进,同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的快速排序原理 快速排序是基于“分治法”原理实现,所谓分治法就是不断的将原数组序列按照一定规律进行拆分,拆分后各自实现排序直到拆分到序列只剩下一个关键字为止。今天说了快排的3种实现方法,但是多次调用函数递归,可能回栈溢出,所以还要有快排的非递归的实现,下次在来讲解,还有最后几个排序的收尾。

2024-04-17 22:47:04 1095 75

原创 栈的详解和例题(力扣有效括号)

之前讲了,很多关于栈的习题,还有栈与队列的互相转换,还是补一篇栈的详解一.什么是栈栈(stack)是一种只允许在一端进行插入和删除操作的线性表。这一端称为栈顶,另一端称为栈底。栈的特点是后进先出(LIFO),即最后进入的元素最先出来。栈可以用来存储局部变量和一些数据,当函数或线程执行完毕,栈就会释放空间。

2024-04-06 22:19:57 1665 95

原创 归并排序详解(非递归)

我们之前讲了希尔排序直接插入排序堆排序,我们今天来讲一讲归并排序,讲之前我们先要知道归并排序的思想和什么是归并排序归并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。归并排序是算法中非常重要的一个方法,无论是递归还是非递归,我们都应该要搞清楚。

2024-04-05 22:41:17 1372 52

原创 动态内存管理

我们之前讲解了,内存函数和字符串函数的一些知识,我们现在来说一下,关于动态开辟内存的一些函数和一些事例,为什么要开辟动太内存的分布呢?因为我们之前学的都是静态的,有一些题目,你并不知道我需要的内存大小是多少,所以我们就需要了解一个动态开辟的方法。先从几个动态函数说起C语言引用了动态开辟让程序员可以自己申请空间,使代码运行变得比较灵活了。在以后学习数据结构的时候,需要大量运用动态开辟的知识。所以说还是比较重要的。

2024-04-04 22:15:35 1827 81

原创 每日一题(相交链表 )

的输入如下(你设计的程序。

2024-04-01 11:45:50 1423 51

原创 每日一题(反转链表)

给你单链表的头节点head,请你反转链表,并返回反转后的链表。

2024-03-30 21:02:39 415 18

原创 希尔排序

今天我们来讲一下排序算法中的插入排序中的希尔排序,插入排序分为两种,一种是直接插入排序,另一种就是希尔排序。

2024-03-30 14:17:14 839 60

原创 如何设计循环队列(两种方法)

前面有提到过队列的知识,这次来说一下怎么设计一个循环队列一.循环队列(力扣). - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。

2024-03-24 22:09:06 1322 56

原创 初识二叉树

树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的节点,所定义的关系称为父子关系。父子关系在树的节点之间建立了一个层次结构。在这种层次结构中有一个节点具有特殊的地位,这个节点称为该树的根节点,或称为树根。二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。return;//是结点就加加else(*psize++);//也是递归,分治先左子树在右子树。

2024-03-22 19:01:03 1055 76

原创 全球首位AI程序员诞生,会抢走程序员的饭碗吗?

AI是人类智慧的产物,它并没有情感和意识也没有自我创造和决策的能力。人类拥有独特的情感、直觉和创造力,这是AI无法复制的。其实前面的都是套话,这个才是我想写这个主题的关键。

2024-03-20 23:14:38 1065 17

原创 堆排序(c语言)

堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆它分两种结构逻辑结构和物理结构逻辑结构堆是一种很好做调整的结构,在算法题里面使用频度很高。常用于想知道最大值或最小值的情况,比如优先级队列,作业调度等场景。

2024-03-20 18:54:04 1177 59

原创 二叉树遍历(牛客网)

然后就结束了我认为这个题目难就难在创建二叉树,和题目的意思,只有意思理解了就好做了。

2024-03-19 01:16:27 892 41

原创 如何实现队列和栈的转化(c语言)

栈(stack)又名堆栈,它是一种运算受限的线性表。限定权在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。其实只要注意栈的一个特点就是后进先出队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。

2024-03-17 19:14:23 1063 47

原创 C语言内存函数详解

我们之前按学习了C语言标准库中提供了一系列的字符和字符串库函数,接下来我们就学习一下关于内存相关的一些函数。熟练的掌握这一系列的库函数,可以在做某些题目上省去大量的时间,如果你不做题目,掌握这些函数,也可以增加你阅读别人函数的经验看得懂别人的代码。

2024-03-16 21:30:18 1197 33

原创 c语言的字符串函数详解

在编程的过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语言标准库中提供了一系列的库函数,接下来我们就学习⼀下这些函数。一、strlen求字符串长度的函数这个函数是我们之前用的最多的函数了,所以相对之下也比较熟悉,这里也就简单地概括一下,讲下注意点,这个函数他'/0'零作为结束标志注意和sizeof的区别。他的模拟实现有三种方法,以前写过,就不多说了。

2024-03-16 17:05:58 1221 26

原创 用c语言自己实现qsort和冒泡排序

主要讲解了两个的c语言排序,没有代码块,手机找不要怎么引用,逆天暗夜9 ,基础一定要打牢。

2024-03-12 16:42:49 647 48

空空如也

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

TA关注的人

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