你是我的光吗
码龄4年
关注
提问 私信
  • 博客:8,951
    8,951
    总访问量
  • 41
    原创
  • 341,712
    排名
  • 0
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2020-11-01
博客简介:

weixin_52142420的博客

查看详细资料
个人成就
  • 获得1次点赞
  • 内容获得3次评论
  • 获得14次收藏
创作历程
  • 41篇
    2021年
成就勋章
TA的专栏
  • C语言程序设计
    24篇
  • C语言深度剖析
    7篇
  • 《数据结构》(C语言实现)
    9篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

《数据结构》(10) - 排序算法(2)- 堆排序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录堆排序提示:以下排序均以升序排列为例堆排序堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是通过建堆来进行选择数据。 要使用堆排序,首先要学习堆的向下调整算法,因为要使用堆排序,必须先建堆,而建堆的次数可以通过堆的向下调整算法得出。堆的向下调整算法(使用前提): 1.若想将其调整为小堆,那么根结点的左右子树必须都为小堆。 2.若想将其调整为大堆,那么根结点的左右
原创
发布博客 2021.09.12 ·
309 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

《数据结构》(9) - 排序算法(1)- 插入排序,希尔排序,选择排序,冒泡排序

文章目录排序概念及分类排序算法分类排序稳定性直接插入排序一、pandas是什么?二、使用步骤1.引入库2.读入数据总结排序概念及分类排序算法分类排序稳定性稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。提示:以下排序算法均以实现升序排列为例直接插入排序提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了
原创
发布博客 2021.09.08 ·
311 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《C深剖》(7) - 关键字(6) -- “0”值比较与bool

文章目录一、C语言中的0二、Bool和0比较三、浮点数与0比较精度损失Float和0比较一、C语言中的0无论是0,‘\0’,NULL,在意义上都表示0,在内存存储时数值上也是00在整形中表示数字0,在字符中’0’表示一个字符它的ASCII码值为48'\0’是一个字符,表示字符串结束,在ASCII中的值为0NULL 即空指针,它表示一个指针指向地址为0的空间,可以看到这里的0被强制转化为void*指针,这也就意味着而NULL可以赋值给任何类型的指针在C语言库函数中对于NULL是这样定义的:#.
原创
发布博客 2021.09.01 ·
411 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

《C深剖》(2) - 关键字(1) -- auto、register与void

关键字(1) autoregistervoidauto一般在代码块中定义的变量,即局部变量,默认都是auto修饰的,不过一般省略 。那么默认的所有变量都是auto吗?不是,一般用来修饰局部变量#include <stdio.h> #include <windows.h> int main() { for ( auto int i = 0; i < 10; i++) { printf("i=%d
", i); if(1) { auto int
原创
发布博客 2021.08.29 ·
321 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

《数据结构》(8) - 链式二叉树的实现

文章目录前言结点设置二叉树的深度优先遍历前序遍历中序遍历后序遍历二叉树的层序遍历结点的个数叶子结点的个数二叉树的销毁前言二叉树的增删查改没有意义,所以这里不实现增删查改。结点设置创建链式二叉树的结点类型。typedef char BTDataType; //重命名结点中存储的元素类型,便于后续维护typedef struct BinaryTreeNode{ struct BinaryTreeNode* left;//指向左孩子的指针 struct BinaryTreeNode* righ
原创
发布博客 2021.08.28 ·
321 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《数据结构》(7) - 树和二叉树

文章目录前言一、树概念及结构1.树的概念2.树的特点3.树的相关名词二、树的表示1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、树概念及结构1.树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上.
原创
发布博客 2021.08.27 ·
630 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《数据结构》(6) - 队列

文章目录一、对列的介绍队列的概念生活中队列的运用实例队列的实现方式分析二、队列的实现函数实现:队列的创建队列初始化销毁队列队尾入队列队头出队列获取队列头部元素获取队列尾部元素获取队列中有效元素个数检测队列是否为空提示:以下是本篇文章正文内容,下面案例可供参考一、对列的介绍队列的概念队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)的原则。入队列:队列的插入操作叫做入队列,进行插入操作的一端称为队尾。出队列:
原创
发布博客 2021.08.26 ·
129 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《数据结构》(5) - 栈

文章目录一、栈的介绍栈的概念栈的实现方式分析二、栈的实现栈创建初始化栈销毁栈入栈出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空一、栈的介绍栈的概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。栈的实现方式分析栈的实现一般可以使用数组或者链
原创
发布博客 2021.08.26 ·
416 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《数据结构》(4) - 线性表之双链表

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、单链表的问题及思考二、链表结构分析三、双向链表的表示和实现1.函数声明2.接口函数详解一、单链表的问题及思考在上一节,我们学习了单链表,了解了单链表相比于顺序表有更好的存储功能,但是,单链表仍然存在一些缺陷:例如尾删,任意位置插入,任意位置删除的时间复杂度但是O(N)查找数据时不能从后往前,只能从头又开始遍历查找尾。找不到前驱,都等等。这时,就可以引入一个新的链表:带哨兵位头节点的双向带头循环链表,这里简称双链
原创
发布博客 2021.08.23 ·
126 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《数据结构》(3) - 线性表之单链表

文章目录一. 顺序表的问题及思考二.单链表表示和实现1. 链表的概念及结构2.单链表的实现3.对各个接口函数的详细解释一. 顺序表的问题及思考在上一节,我们学习了顺序表,但是我们还是要思考,用顺序表来存储数据行不行呢?顺序表的问题及思考:中间/头部的插入删除,时间复杂度为O(N)增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数
原创
发布博客 2021.08.20 ·
96 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《数据结构》(2) - 线性表之顺序表

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、概念及结构二、顺序表接口实现1.静态顺序表接口实现2.动态顺序表接口实现前言线性表:线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储提示:以下是本篇文章正文内容,
原创
发布博客 2021.08.17 ·
81 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《数据结构》(1) - 时间复杂度与空间复杂度

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一.什么是时间复杂度和空间复杂度1.算法效率2.时间复杂度3.空间复杂度二、时间复杂度1.时间复杂度表示2.大O的渐进表示法3.时间复杂度经典题目二.空间复杂度1.空间复杂度表示2.空间复杂度经典题目一.什么是时间复杂度和空间复杂度1.算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法
原创
发布博客 2021.08.15 ·
250 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

程序编译与链接

文章目录前言一、程序的翻译环境与运行环境1.详解翻译环境(编译与链接)2. 程序的运行环境二、预处理详解1.预定义符号2.#define3.#和##三、宏和函数比较四.命令行定义五. 条件编译六. 文件包含结语前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、程序的翻译环境与运行环境在ANSI C的任何一种实现中,存在两个不同的
原创
发布博客 2021.08.13 ·
420 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C语言文件操作

文章目录前言一、什么是文件二、文件缓冲区1.缓冲文件系统2.文件指针三、文件操作前言前言:本章主要讲解C语言的文件操作方法,主要有:文件的打开与关闭,文件的读写相关,文件指针等。提示:以下是本篇文章正文内容,下面案例可供参考一、什么是文件1、站在程序设计角度,文件有两种:程序文件、数据文件程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程
原创
发布博客 2021.08.10 ·
137 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

内存开辟与柔性数组

文章目录前言一、C/C++程序的内存开辟二、柔性数组1、柔性数组的概念2、柔性数组的特点3、柔性数组的使用前言前言:在前面的章节,我们已经学习了自定义类型与动态内存管理,这时我们可以提出一个新的概念:柔性数组。柔性数组是C99标准引入的,主要内容包含结构体和动态内存分配。接下来,让我们来看看这个柔性数组的含义。提示:以下是本篇文章正文内容,下面案例可供参考一、C/C++程序的内存开辟C/C++程序内存分配的几个区域:栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上
原创
发布博客 2021.08.07 ·
292 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

动态内存分配

文章目录一、为什么存在动态内存分配二、动态内存函数的介绍1.malloc和free2.calloc3、realloc三、常见的动态内存错误一、为什么存在动态内存分配目前,我们已知的开辟内存空间的方式无非两种:如在栈空间上开辟的函数,局部变量,在静态区开辟的全局变量,staic修饰的静态局部变量。但这两种开辟的方式,都直接给定了开辟内存的大小,并不方便及时更改。假如此时我们要存储一个班的学生信息,我们已经创建了一个结构体类型,那么我们通过这个结构体类型创建一个结构体数组,我们并不能直接给定这个数组的大
原创
发布博客 2021.08.05 ·
122 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

自定义类型剖析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、结构体1、结构的声明2、结构体的自引用3、 结构体变量的定义和初始化4、 结构体内存对齐5、 结构体相关二、位段1.位段定义2、位段的内存分配三、枚举1、枚举示例2、 枚举的优点3、枚举的使用四、联合(共用体)1、联合类型的定义2、联合的特点前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下
原创
发布博客 2021.08.03 ·
76 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

字符函数与字符串函数模拟

文章目录前言一、字符函数strtokstrerror字符分类函数memcpymemmovememcmp二、字符函数模拟strlen模拟strcpy模拟strcat模拟strcmp模拟strstr模拟memcpy模拟memmove函数模拟前言提示:在上一节中,我们已经介绍了一些字符函数并了解了其功能。接下来,我们便讨论剩余的字符串函数,便通过模拟实现函数加深印象。提示:以下是本篇文章正文内容,下面案例可供参考一、字符函数strtokchar * strtok ( char * str, con
原创
发布博客 2021.08.02 ·
81 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《C深剖》(6) - 关键字(5) -- 条件与循环关键字

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、switch case 语句二、do、while、for关键字1.引入2.getchar前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考`一、switch case 语句示例:swtich case语句#include <stdio.h&g
原创
发布博客 2021.08.02 ·
142 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

字符函数和字符串函数

文章目录前言字符函数介绍:strlenstrcpystrcatstrcmpstrncpystrncatstrncmpstrstr前言C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在 常量字符串中或者字符数组 中。字符串常量适用于那些对它不做修改的字符串函数。求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数介绍strncpystrncatstrncmp字符串查找strstrstrto
原创
发布博客 2021.08.01 ·
69 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多