自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言实现的树

从根结点到叶结点所经过的结点构成一条路径,路径上的结点数目称为路径长度。(Level):从根开始定义起,根为第1层,根的子节点为第2层,以此类推。(Parent):若一个结点含有子结点,则这个结点称为其子结点的父结点。(Tree)是n(n>=0)个结点的有限集合,当n=0时称为空树。(Child):一个结点含有的子树的根结点称为该结点的子节点。(Descendant):从当前结点到根的路径上所有结点。(Ancestor):从根到当前结点的路径上所有结点。(Depth):树中节点的最大层次就是树的深度。

2024-04-06 12:22:57 856

原创 C语言实现的队列

长度为MaxSize的队列Q∈Queue,其队列元素类型为item∈ElementType。队列的链式存储结构也可以用一个单链表实现,插入和删除操作分别在链表的两头进行。算法思路:两个指针P1和P2分别指向两个多项式的第一个结点,不断循环。,将p1当前项(c1,e1)乘p2多项式,逐项插入到结果多项式中。,将p1当前项(c1,e1)乘p2多项式,再加到结果多项式里。将P1的当前项存入结果的多项式,并使P1指向下一项。将P2的当前项存入结果的多项式,并使P2指向下一项。和一个记录队列头元素位置的变量。

2024-04-06 11:26:33 365

原创 C语言实现的堆栈

长度为MaxSize的堆栈S∈Stack,堆栈元素item∈ElementType。用一个数组实现两个堆栈,要求最大的利用数组空间,使数组只要有空间入栈操作就可以成功。栈的链式存储结构实际上就是一个单链表,叫做链栈,插入和删除操作只能在链栈的栈顶进行。中缀转换为后缀示例:(2 * (9 + 6 / 3 - 5) + 4)栈的顺序存储结构通常由一个一维数组和一个记录栈顶元素位置的变量组成。:运算符在操作数中间,如a+b。(1)堆栈初始化(建立空堆栈)删除并返回堆栈S的栈顶元素。(2)判断堆栈s是否为空。

2024-04-06 00:17:47 545

原创 C语言中的文件处理

文件的格式化输入与输出函数为fscanf,fprintf函数,它们与scanf和printf函数类似,只是fscanf和fprintf的第一个参数为文件指针,而scanf和printf的第一个参数为格式字符串。文件通常是指在磁盘或固态是的一段已经命名的缓冲区,例如我们经常使用的stdio.h就是一个文件,c语言将文件看成一段连续的字节,每个字节都可被单独读输,c提供了两种模式:文本模式和二进制模式。文件是当今计算机系统不可或缺的部分。文件用于存储程序,文档,数据,书信,表格,图形,照片,等其它种类的信息。

2024-04-03 15:44:11 869

原创 C语言函数库

函数原型:void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int(*compar)(const void, const void))函数原型:void qsort(void *base, size_t nitems, size_t size, int(*compar)(const void *, const void *))函数功能:把参数str所指向的字符串转换成int型数据,并返回转换后的结果。

2024-04-01 20:35:10 531

原创 union共用体

注意!

2024-04-01 12:26:16 136

原创 结构体实现的链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点(链表中每一个元素称为节点)组成,节点可以在运行时动态生成。每个节点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域。

2024-03-31 23:21:23 381

原创 C语言实现的线性表

不要求逻辑上相邻的两个元素物理上也相邻,通过“链”建立起数据元素之间的逻辑关系。访问下标为i的元素:L.Data[i]或PtrL->Data[i]广义表中,这些元素不仅可以是单元素也可以是另一个广义表。利用数组的连续存储空间顺序存放线性表中的元素。对于线性表而言,n个元素都是基本的单元素。返回线性表L中第一个与x相等的元素位置。再找到链表的第i-1个结点,用p指向。找到链表的第i-1个结点,用p指向。:线性表是n个数据元素的有限序列。返回线性表L中第k个位置的元素。删除线性表L中第K个位置的元素。

2024-03-30 11:07:49 313

原创 C++编程基础

也不会从中读取数据,其作用是在iostream上执行某些操作,endl会插入一个换行符,并会清除输出缓冲区,还有其它事先定义好的操作符,例如hex(以十六进制显示整数)、oct(以八进制显示整数)、setprecision(n)(设置浮点数的精度)如果要打开一个可供读取的文件,我们就定义一个ifstream(供输入的file stream)对象,并将文件名传入。为了打开一个可供输出的文件,我们定义一个ofstream(供输出用的file stream,并将文件名传入)在程序中,指针主要做两件事。

2024-03-30 11:01:35 828

原创 C语言储存管理

在本地变量定义时加上static修饰符就成为静态本地变量,当函数离开的时候,静态本地变量会继续存在并保持其值,静态本地变量的初始化只会在第一次进入这个函数时做,以后进入函数时会保持上次离开时的值。静态本地变量实际上是特殊的全局变量,它们位于相通的内存域,静态本地变量具有全局的生存期,函数内部局部作用域,static在这里意思是局部作用域。返回本地变量的地址是危险的,返回全局变量或静态本地变量的地址是安全的,返回在函数内malloc的内存是安全的,最好返回传入的指针。

2024-03-21 18:18:04 217 1

原创 格式化的输入与输出

【代码】输入与输出。

2024-03-21 18:17:19 291 1

原创 预处理和宏

如果一个宏的值中有其他的宏的名字,也是会被替换的,如果宏的值超过一行,最后一行之前的行末需要加反斜杠,宏的值后面出现的注释不会被当做中的值一部分_Line_表达当前源代码所在行的行号,_File_表达当前文件名,__DATE__和__TIME__分别表示编译日期。

2024-03-21 18:16:27 722 1

原创 enum枚举

enum 枚举名 {枚举数据表 };注意!enum是关键字,标识枚举类型,定义枚举类型必须用enum开头枚举数据表中的名字是程序员自己设定,这些名字只是一个符号。但注意命名时要提高程序的可读性。枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号隔开枚举数据表的值都是整数。类型都是int。第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。也可以人为设定枚举成员的值,从而自定义某个范围内的整数可以在定义类型时对枚举常量初始化枚举类型可以进行比较。

2024-03-20 22:00:05 401 1

原创 typedef

上述声明引入了 PFunCallBack 类型作为函数指针的同义字,PFunCallBack 类型定义的指针会指向一个函数,该函数包含两个类型分别为 char* 和 unsigned int 的参数,以及一个类型为 void 的返回值。上述代码中,s1、s2、s3的类型相同,均为char*,而s4的类型为char,而不是char*,这是因为#define只是做了简单的字符串替换。在不使用 typedef 的情况下,RedisSubCommand 函数的声明会复杂得多,不利于代码的维护,同时增加出错风险。

2024-03-20 21:58:53 832 1

原创 结构体和共用体

struct 结构体名 {结构体所包含的变量或数组 } 结构体变量;注意分号不能少!若没有结构体名,后面就没法用该结构体定义新变量其他变量定义形式struct 结构体名 {结构体所包含的变量或数组 };stuct 结构体名 结构体变量;struct {结构体所包含的变量或数组 } 结构体变量;//此时是无名结构。

2024-03-20 21:58:10 452 1

原创 字符串和字符串函数

以0结尾的一串字符0或’\0’是一样的,但是’0’不同0标志字符串的结束,但它不是字符串都一部分计算字符串长度时候不包含这个0字符串以数组的形式存在,可以以数组或指针的形式访问。

2024-03-20 21:56:58 599 1

原创 C语言指针

运算符是取地址运算符,返回的是变量的内存地址,即变量在内存中的存储位置。是一个单目运算符,* 运算符是取值运算符,返回的是指针所指向的变量。数组变量已经是常量指针了,这里的const表明数组的每一个单元都是const int。因为把数组传入函数时,实际上是传入了数组的首地址,所以那个函数内部可以修改数组的值。通常的是让函数返回特殊的不属于有效范围内的值表示错误,例如返回-1表示错误。返回的结果是void*类型,需要类型转换为需要的类型。传入的参数实际上是需要保存结果的变量。

2024-03-20 21:55:34 909 1

原创 C语言数组

定义方式类型 数组名[元素数量];数组是一种容器其中所有元素具有相同的数据类型一旦创建,不能改变大小数组的单元使用数组时放在[]中的数字叫做下标或索引,下标从0开始。

2024-03-20 21:54:10 172 1

原创 C语言函数

函数有函数头和函数体函数头:返回值类型 函数名(形参列表)函数体:函数实现的功能(想执行的语句)int main()return 0;函数声明的作用是告诉编译器,该程序中有一个函数,函数的返回值类型、函数名和形参列表都已确定。

2024-03-20 21:53:18 574 1

原创 分支与循环

break语句在循环体的中间设置退出点,用以跳出while,do while和for循环,直接执行循环语句后面的语句。除此之外,break语句还用于switch语句,用以跳出switch语句而直接执行switch语句后面的语句。循环语句是用于重复执行某条语句(循环体)的语句,它包含一个控制表达式,每循环执行一次都要对控制表达式进行判断,如果表达式为真,则继续执行循环。C语言提供了3中循环语句,分别为while语句,do while语句和for语句。循环体至少执行一次,表达式不为零时,继续循环;

2024-03-20 21:51:05 472 1

原创 运算符(包含位运算符)

如果把一个结构体(如struct st_girl stgirl)的地址传给子函数,子函数用一个结构体指针(如struct st_girl *pgril)来存放传入的结构体的地址,如果在子函数中用sizeof(pgirl),得到的不是结构体占用内存的字节数,而是结构体指针变量占用内存的字节数(8字节)。如果(x)i == (y)i,那么(x^y)i == 0,否则(x^y)i == 1,如果两个位相等,那么结果为零,如果不相等,结果为1。正确的用法是用sizeof(arr)/sizeof(arr[0])

2024-03-20 21:49:13 760 1

原创 变量与常量

define PI3.1415910// 此处SIZE代表数组元素个数int main()return 0;如需修改数组大小,需要修改代码中SIZE的值。

2024-03-20 21:45:11 268 1

原创 C语言中的数据类型

对于printf,任何小于int的变量都会被自动转换为int类型,float会被自动转换为double类型。

2024-03-20 20:43:47 684 1

原创 C语言中的语句

空语句是一个分号,表示一个空操作,空语句本身并不执行任何任务,但有时还是有用。它所使用的场合就是语法要求出现一条完整的语句,但并不需要它执行任务。

2024-03-20 20:42:59 240 1

原创 关于main函数

代码一般以main函数开始,main函数是C语言程序执行的入口,只能有一个main函数,且必须放在源文件中。

2024-03-20 20:40:09 117

原创 程序的结构

声明是不产生代码的东西函数原型变量声明结构声明宏声明枚举声明类型声明inline函数定义是产生代码的东西。

2024-03-20 20:39:24 184

原创 数据结构与算法和复杂度

根据算法写成的程序在执行时。这个长度往往与输入输出数据的规模有关。空间复杂度过高的算法可能导致使用的内存超限,从而引起程序崩溃。S(n)=c*n。

2024-03-20 20:31:11 757

原创 C语言关键词

对于一个变量而言主要有三个部分:类型、名字、地址变量的值以最后一次赋值为准变量的赋值从右至左#define PI3.1415910// 此处SIZE代表数组元素个数int main()return 0;如需修改数组大小,需要修改代码中SIZE的值函数有函数头和函数体函数头:返回值类型 函数名(形参列表)函数体:函数实现的功能(想执行的语句)int main()return 0;函数声明的作用是告诉编译器,该程序中有一个函数,函数的返回值类型、函数名和形参列表都已确定。定义方式。

2024-03-02 23:42:53 580

空空如也

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

TA关注的人

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