- 博客(41)
- 收藏
- 关注

原创 C语言二叉树详解
二叉树的内容是比较多的,而且很多算法的思路都需要用到递归的思想,需要大家多花时间思考和画图分析。希望本篇博客对大家的数据结构有帮助。
2023-01-05 19:31:28
925
3
原创 适配器模式实现stack和queue
适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。
2023-08-22 18:49:41
1106
原创 C++迭代器
迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对指针进行了封装。迭代器按照定义方式分成以下四种。正向迭代器,定义方法如下:以vector举例//容器类名::iterator 迭代器名;常量正向迭代器,定义方法如下://容器类名::const_iterator 迭代器名;
2023-08-20 02:02:56
521
原创 C/C++内存管理
C语言内存管理方式在C++中可以继续使用,但有些地方就无能为力,而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。
2023-08-07 17:44:52
554
原创 C++类和对象入门(下)
现实生活中的实体计算机并不认识,计算机只认识二进制格式的数据。如果想要让计算机认识现实生活中的实体,用户必须通过某种面向对象的语言,对实体进行描述,然后通过编写程序,创建对象后计算机才可以认识。
2023-08-04 23:07:34
422
原创 C++运算符重载详解(赋值、流插入流提取、前置后置++、取地址)
C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。(返回类型说明符) operator < 想要重载的运算符符号 >(参数) {函数内容 }不能通过连接其他符号来创建新的操作符。C++运算符重载详解(赋值、流插入流提取、前置后置++、取地址)
2023-08-03 20:29:50
494
原创 C++类和对象入门(中)
内置类型就是语言提供的数据类型,如:int/char…,自定义类型就是我们使用class/struct/union等自己定义的类型,看看下面的程序,就会发现编译器生成默认的构造函数会对自定类型成员_t调用的它的默认成员函数。
2023-05-21 16:55:34
529
原创 C++类和对象入门
/ 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号注意:class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。声明和定义全部放在类体中成员函数如果在类中定义,编译器可能会将其当成内联函数处理。一般情况下,更期望采用第二种方式。注意:上课为了方便演示使用方式一定义类,大家后序工作中尽量使用第二种。
2023-05-16 22:26:41
408
原创 C++入门基础
C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C++学习有一定的帮助,本章节主要目标:1. 补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用域方面、IO方面、函数方面、指针方面、宏方面等。2. 为后续类和对象学习打基础。
2023-04-09 16:46:34
537
原创 Linux基础入门和常用命令
Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。这里说明一下,博主使用的是云服务器,Linux系统是CentOS7.6,之后关于Linux的博客,都是使用的这个环境。首先我们来看一下进入Linux后的界面:(本篇博客我们先使用root(超级管理员)登录Linux,之后讲解了Linux权限后,再使用普通用户进行操作)Linux的目录结构为树形结构,这种结构允许我们准确地进入某个目录。
2023-01-07 19:56:18
506
原创 力扣(leetcode)经典题目分享第3期——栈和队列
本篇博客主要介绍了一些常见的选择题和OJ题,主要考察的还是队列和栈的性质。关于循环队列的部分呢,难度较大,没有特殊要求的话,可以跳过。
2022-12-27 16:54:01
753
2
原创 数据结构入门——链表(SeqList)详解(初始化、增、删、查、改)
概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。由图可以看出链表的结构在逻辑上是连续的,但是在内存中不一定连续。链表的结点是在堆上开辟的。在堆上开辟的两段空间,可能连续,也可能不连续。之后的一篇博客会讲一下关于链表的OJ题。
2022-11-12 21:13:23
1904
原创 力扣(leetcode)经典题目分享第1期——顺序表(数组)
这一系列的博客主要是讲解一些比较经典的,笔试常见的数据结构题目,由于我也是刚刚开始学习数据结构,所以更新的内容肯定是偏简单的,难度会跟着学习的深入而上升。
2022-11-02 19:45:53
352
原创 数据结构入门——顺序表(SeqList)详解(初始化、增、删、查、改)
线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。本篇博客我们主要介绍一下顺序表的内容,最后会给出顺序表的应用,也就是之前拖了大家很久的通讯录动态版。
2022-11-01 16:39:51
4144
2
原创 算法的时间复杂度和空间复杂度-总结
本篇博客简单介绍了一下时间复杂度和空间复杂度。也代表我将开始数据结构与算法的学习了。希望可以帮助到大家。一起加油,一起进步!之前承诺的通讯录动态版将会在本周内发布(这几天偷懒了)。
2022-10-25 17:09:04
489
原创 C语言文件操作详解
其实我们上一期博客时已经提到了一些了。之前写的通讯录(静态版)中有两个问题。> 一.通讯录的大小是固定的,当通讯录人数达到最大容量时,程序就会出错。> 二.每次运行都需要自己输入数据,而且当程序关闭后我们输入的信息都会消失,重新打开后通讯录啥也没有了又是空的。其中第一个问题我们在上一期博客中的动态内存分配中已经解决了。今天我们解决第二个问题,通过学习文件操作函数,达到能够将我们输入的信息保存在文件中,并且在下一次运行时程序会将文件中的内容重新读取到通讯录中。
2022-10-13 09:58:32
339
原创 C语言动态内存分配函数
通讯录大小是100,即最多只能存100个联系人的信息,那如果我们在使用时,需要存200人甚至更多人呢? 那这个程序就不能满足我们的需求了。 而需要解决这个问题,我们就得学会使用C语言动态内存分配函数,对通讯录的大小进行动态分配。本篇博客会对动态内存分配函数进行讲解,一起来看看吧
2022-10-06 12:11:52
1978
1
原创 C语言实现通讯录(静态版)
1.添加联系人2.删除联系人3.修改联系人信息4.查找联系人5.显示所有联系人信息6.对通讯录进行排序0.退出程序本篇博客主要介绍了静态版本的通讯录的简易实现方式。动态版和可以进行文件操作的版本将会在之后的博客中写道。希望对大家有帮助!
2022-09-26 13:56:24
573
3
原创 C语言结构体(struct)常见使用方法
了解和学会使用结构体有助于我们使用编程来对一个对象进行描述,以便解决生活中的问题。本篇博客主要介绍了结构体的大概内容,希望对大家有帮助。
2022-09-19 18:24:43
6834
原创 C语言处理字符串函数总结和自实现
C语言中没有单独的字符串变量,所以有一些针对字符串的操作并不容易。本篇博客主要介绍了一些常用的用于对字符串操作的函数和一些自实现方法,希望对大家有帮助。
2022-09-14 14:14:23
387
1
原创 sizeof和strlen的区别及使用详解——C语言
sizeof与strlen是C语言使用中经常用到的操作符和表达式。如果没有深入了解他们的区别和使用方式的话,很容易出错。本篇博客主要介绍了两者的区别和一些使用的案例,希望对大家有帮助。
2022-09-09 15:44:49
1701
1
原创 统计二进制中0的个数——C语言
重点知识就是表达式n=n|(n+1);需要了解其原理,和学会使用它,本题只是其中一个使用案例,以后遇到其他有趣的题目我也会分享出来。
2022-09-09 08:39:48
2559
原创 qsort函数的自实现(冒泡排序)——C语言
qsort函数是C语言的库函数,它是以快排为底层逻辑实现的排序函数,可以给任意数据类型排序。自主实现qsort能够很大程度上提高我们对指针和数据在内存中的存储的理解。希望大家能够通过本篇博客有所收获。
2022-08-22 00:28:16
404
原创 qsort函数的使用——C语言
qsort库函数是一个功能比较强大的函数,它可以排序任意内容的数组。使用该函数需要对指针,函数指针,回调函数有一些了解。qsort内部的实现是使用的快速排序的思想。
2022-08-19 17:59:22
342
原创 统计二进制中1的个数——C语言
提供了三种解法,其中第一种不推荐,因为有一定的漏洞,第二种解法最容易理解,但是效率偏低,第三种解法是比较推荐的,并且这个算法也很巧妙。
2022-08-15 05:30:00
610
1
原创 交换两个变量(不创建临时变量)——C语言
本篇博客主要介绍了^按位异或操作符的运用。讲解了一道比较经典的题目,希望能够帮到大家!如果有什么问题,请在评论区讨论,一起讨论,一起进步!
2022-08-14 05:00:00
693
1
原创 C语言——冒泡排序的实现(含优化版)
冒泡排序是一个稳定的入门算法,也是比较简单的算法,希望大家能够尽早掌握。本篇博客主要介绍了冒泡排序的一般形式和优化方法。
2022-08-06 00:14:01
2927
原创 如何用VS2022写C语言(新手入门)
VS2022是一款对于新手来说比较友好的IDE,一步到位,虽然软件可能有一点大,但是其功能非常强大,需要我们以后慢慢体会!
2022-08-05 17:16:30
132692
47
原创 四舍五入(C语言实现)
我们知道,C语言直接取整是不能实现四舍五入的,我们需要靠自己的方法实现四舍五入。而且有不少题目会在浮点数的输出中要求我们四舍五入。所以学会用C语言实现四舍五入还是很有必要的。本篇文章我们介绍两种方法。...
2022-07-26 16:49:30
70015
16
原创 C语言如何生成随机数——随机数原理分析
随机数在C语言学习的过程中还是会经常遇到的,比如三子棋,扫雷等小游戏的制作过程中就会使用到它。希望对你有所帮助。
2022-07-23 15:47:03
6284
1
原创 C语言实现简单的计算器(C语言入门1)
本程序是一个简易的计算器(支持小数运算),计算能力是四则运算(加减乘除)。需要的知识内容函数,选择语句,循环语句。
2022-07-21 20:26:43
8287
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人