自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 51单片机的基础知识笔记——关于模块化编程

把各种模块的代码放在不同的.c文件里面,在.h文件里面提供外部可调用函数的声明,其他的.c文件想使用其中的代码时,只需要写 “#include "xxx.h”文件即可,使用模块化的编程可以极大的提高代码的可阅读性,可维护性,可移植性等。比如说我们的延时函数和数码管的断码结构体就是一个个的实现某种固定功能的代码,我们需要这些代码的时候,那么就会重新的打开先前的.c文件,对特定片段的功能代码进行复制粘贴,那么其代码的可移植性就比较弱。—————显示有符号的十进制数字。————显示十进制的数字。

2024-05-26 09:01:22 383

原创 51单片机的基础知识—关于数码管的驱动方式

这种的特点就是,一旦程序受到阻塞没来得及给单片机的数码管扫描代码,那么我们的数码管就会阻塞或者熄灭。内部自带显存,扫描电路,单片机只需要告诉他显示什么即可。以下关于单片机的代码就是第一种:让单片机直接进行扫描。这种芯片有一种叫做TM1640.这个使用更为方便。硬件设备简单,但会消耗大量的单片机CPU时间。关于数码管的驱动方式。

2024-05-25 16:39:26 219

原创 C语言数据结构——关于二叉树的三种遍历方式

二叉树的遍历是指按照某种顺序访问二叉树中的每个节点,使每个节点被访问一次并且仅仅被访问一次。后序遍历又称作后根遍历,其递归定义:若二叉树为空,遍历结束,否则,先序遍历二叉树的定义为递归定义,算法如下。(2)先序遍历访问根节点的左子树。(3)先序遍历访问根节点的右子树。(1.)中序遍历根节点的左子树;(3.)中序遍历根节点的右子树。(1.)后序遍历根节点的左子树。(2.)后序遍历根节点的右子树。

2024-04-26 23:49:14 1421 1

原创 C语言数据结构——关于二叉树的存储

对于一般的二叉树,如果仍然按照从上到下和从左到右的顺序将树中的节点顺序存储在一维数组中,则数组元素的下标之间的关系不能够反映二叉树中节点之间的逻辑关系,只有增添一些不存在的“虚节点”,使之成为一棵完全的二叉树的形式,再用一维数组顺序存储。,因为树中的节点的序号可以唯一地反映节点之间的逻辑关系,这样既可以最大可能地节省存储空间,又可以利用数组元素的下标值确定节点在二叉树中的位置,以及节点之间的关系。运用三叉链表来存储二叉树,既容易找到节点的左,右孩子节点,又容易找到其双亲节点。

2024-04-21 20:43:43 503 1

原创 C语言数据结构——二叉树

2.完全二叉树:若在一棵高度为k(k>1)的二叉树中,第一层到第K-1层构成一颗深度为k-1的满二叉树,第k层的节点不满2的k-1个节点,而且这些节点都满放在该层的最左边,则此二叉树称为完全二叉树。性质五:对一棵有n个节点的完全二叉树(其深度为log以二为底n的对数 加 1),按照从根节点起,自上而下,从左到右的约定对所有的节点从 1 到 n 开始进行编号,并按此编号将该二叉树中各节点顺序的存放在一个一维数组当中,则对于任意编号为 i 的节点(1 ≤ i ≤ n)有以下的性质。(2)如果2i ≤ n;

2024-04-21 17:33:40 1418 1

原创 C语言数据结构——树和二叉树

节点的层次:从根节点开始进行定义,根节点的层次为1,根节点的直接后继的层次为2,以此类推,节点B,C,D在层次2,节点K在第四层。森林:m棵互不相交的树的集合,将一棵非空树的根节点删去,树就变成了一个森林,反之,给森林增加一个统一的根节点,森林就变成了一棵树。叶节点:度为0的节点,即无后继的节点,又称为终端节点,在上图中K,F,G.H,I,J就可以叫做叶节点;孩子节点:一个节点的直接后继称为该节点的孩子节点。双亲节点:一个节点的直接前驱称为该节点的双亲节点,在上图中A是B,C,D的双亲节点。

2024-04-13 16:26:23 505 1

原创 C语言数据结构——关于循环队列的引入

可是即使出队了部分元素,当队列处于下图中的第二幅图所示状态时,如果再继续插入新的队尾元素,也会出现数组越界或者上溢的现象;产生这些现象的原因就是被删除元素空间在该元素删除以后就永远不可以在继续使用了,上述的两种情况就被称为“假溢出”,因为队列的可用空间并未占满。假设一个队列最多存放MAXLEN(MAXLEN = 8)个元素,如图下图的第一幅图所示,队列中已有MAXLEN个元素,即队列已满(此时队列已到达最大的长度),如果在队列中队列再插入一个元素,那么就出现了数组越界或上溢的现象。

2024-04-05 21:58:20 214 1

原创 对列的逻辑数图

队列的初始条件:q->front = q->rear = -1;队列满的条件:q-rear = MAXLEN - 1;对空的条件:q->front = q->rear;

2024-04-05 15:34:26 127 1

原创 数据结构——链表(代码实现链表的最基本的功能)

⑪求链表中相邻的两个元素最大值,并返回第一个元素的首地址;②根据数据的值来定位数据在链表中是否存在该数据。以下的代码主要实现了,链表的如下几个功能。以上就是以下的代码实现的链表的基本功能.⑤在某个位置上插入用户所要插入的值。⑨在链表的头部插入节点建立单链表。③查找某个位置上的数据的值。⑦删除某个位置上的数据。

2024-04-05 14:12:02 270 1

原创 C语言数据结构——队列(上)

队列(queue)是另外一种限定性的线性表,它只允许在标的一端插入元素,而在另外一端删除元素,所以队列是具有先进先出的特性。在队列当中,允许插入的一端称为队尾(rear),允许删除的一端则称为对头(front)。队列中是按照a1,a2,....、an的顺序入队的,也是按照a1,a2......,an的顺序出对的,即第一个出队的应该是a1,第二个应该是a2。由于队列的对头和队尾的位置是动态变化的,因此要设计两个指针分别指向当前的对头元素和队尾元素在向量中的位置。初始条件:队列 Q存在,且为非空。

2024-04-05 13:43:20 349 1

原创 关于链式栈的基本代码的实现

栈是动态变化的结构,顺序栈在一定的程度上可以满足这种动态结构所要求的动态操作,但是以具有固定长度的数组来存储这种动态变化的数据结构是有局限性的。为了克服顺序栈的这个缺点,可以将栈用链式存储结构表示,这种存储结构的栈称为链栈。链栈即采用链表作为存储结构实现的链栈,在一个链栈中,为了方便进行插入和删除操作,一般指定链表头为栈顶,链尾为栈底。

2024-04-05 10:25:36 313 1

原创 C语言经典基础题——打印菱形

【代码】C语言经典基础题——打印菱形。

2024-03-18 19:25:43 596

原创 C语言新手经典基础题——冒泡排序

即对于五个数进行从大到小的排序,我们在第一次的时候就行了4循环,即5-1次。第四步将第四个数和第五个数进行比较,即91和66进行比较,91>66,所以91的位置往后移动一位,66往前移动一位(将91和66的位置进行调换)现将第一个数和第二个数进行比较,即14和13,13比14小,那么就将13和14进行位置的调换,13排在了第一个(13和14进行位置的调换)然后将14和91进行比较(即第二个数和第三个数进行比较),14比91小,那么14的位置不动,91的位置也不动(14和91不进行位置的调换)

2024-03-15 20:21:45 757 1

原创 逐步解析杨辉三角(超详解)——C语言

这里我们可以举一个简单的例子:如果有三行的数列,那么第一行就会有两个空格去站位,同理,有10行的话,那么第一行就是有9个空格去占位,第二行就有8个空格去占位,第三行就有7个空格去占位.....以此类推。对于杨辉三角的最终结果的分析,我们知道要打印 10行的杨辉三角首先就要设定一个二维数组,并将二维数组进行初始化赋值,打印。以上就是杨辉三角的全部内容,希望大家可以采纳,反复观看理解一下,特别从倒数第二步到最后·一步的时候,明白为什么这样做。杨辉三角作为学习C语言的新手来说,是必备的C语言练习作业。

2024-03-13 23:01:00 505

原创 九九乘法表最底层逻辑(C语言)——适合新手的C语言经典代码分享

在程序当中,我们使用到了两个for循环语句的复杂嵌套循环,其中,外层循环的for循环语句的迭代条件i++发生的变化决定了内层循环的for循环语句的判断条件就

2024-03-09 18:18:24 552 1

原创 数据结构——第五节(顺序表的代码实现)

当我们去申请内存了之后,我们知道我们得到了一个数组data[N]和last,并且我们应该知道如何对其进行初始化, 我们申请的内存空间当中是结构体,但是在结构体当中不止有数组data[N]还有last、所以我们申请的内存空间就是数组和last一起的内存空间。在整个内存申请成功之后,我们只是申请了一个空的线性表,就是堆上的内存不会去做处理的,那么我申请的内存是不确定的,那么我们会存储一些默认值,一般会放0或者\0去占据内存。数组的每一个元素我都要去清零的,就用memse函数来实现。

2024-03-02 17:59:14 460 1

原创 数据结构——第四章节(C语言数据结构)

当我们的工程文件程序比较大,项目比较复杂的时候,我们都需要多个sqlist.c文件,多个.c文件集合起来就是一个.o执行文件,也就是说多个sqlist.c文件集合起来就是sqlist.o文件,多个test.c文件集合起来就是一个·test.o文件。当一个项目工程当中涉及到的文件比较多的时候,预处理,编译,汇编等这几个步骤都需要独立去完成的,也就是说sqlist.c需要经历去经历预处理,编译,汇编,链接的。我们知道程序在编译的时候要经历预处理(把头文件,宏给替换包括进来),编译,汇编,链接等4个步骤。

2024-02-27 18:12:17 375

原创 数据结构——第四节顺序表(C语言)

(写三个文件的好处:1.程序的结构非常的清晰2.软件复用效果很好,对于.h和.c文件其中存储的是自己写的比较经典的代码,成为自己独立的代码的资源,也可以将.c和.h中自己存储的代码分享给同事。我们需要sqlist.h文件里面存放数据结构当中结构体的定义,还有运算所需要的基本的函数体的定义。sqlist .h(往往写一写数据结构的定义,还有数据结构中的一些运算,提供运算函数的接口)sqlist.c文件的作用是用来实现在sqlist.h当中的一些函数。sqlist.c(主要针对的是运算的实现)

2024-02-27 17:24:07 358

原创 数据结构——第三节 顺序表的实现(C语言)

插入前:(A0,A1,....,Ai,Ai+1,......,An-1)0 ≤ i ≤ n,i = n 时,x插入表尾。5)取表中某个元素:GetList(L,i),即ai,要求0 ≤ i ≤ length(L)-1。list_enpty(L).若为空表,返回值为1,否则返回0;将元素x插入表L中第i个元素Ai之前,并且表长都为+1。插入后(A0,A1,......,Ai-1,Ai,x,Ai+1....An-1)1)建立一个空表:list_create(L)

2024-02-09 00:31:08 379 1

原创 数据结构—第二章线性表(C语言)

2.设Loc(Ai)为Ai的地址,Loc(A0)= b,每个元素占有d个单元,那么Loc(Ai)= b + i*d。3.对于非空表,其他的每个元素Ai,有且仅有一个直接前驱Ai-1和一个直接后继Ai+1;记为:L=(A0,......Ai-1,Ai,Ai+1.......An-1)last表示最后一个,last是一个下标,即表示实际的,有效的那个元素的下标。luo-辑上相邻的元素 Ai,Ai+1,其存储位置也是相邻的。Ai是Ai+1的直接前驱,Ai+1是Ai的直接后继。

2024-02-08 23:50:49 337

原创 数据结构——0基础详细笔记(C语言)-第一章节

将数据结构中的各元素分布代存储器的不同点当中,用地址(或者链式指针)方式建立他们之间的联系(就是没有一整块的存储空间去存储数据,但是零散的存储空间足以来存贮数据,那么这种清情况我们就可以选择链式存储)根据数据元素的特殊字段(称为关键字key),计算数据元素的存放地址,然后数据元素按地址存放 (就是根据行列的关系来查找数据,对于查找频率比较高的时候就可以用散列存储)(1.)数据(data)数据即信息的载体,是能够输入到计算机中并且能被计算机识别,存储和处理的号的总称。

2024-02-07 17:01:02 347

空空如也

空空如也

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

TA关注的人

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