- 博客(36)
- 收藏
- 关注
原创 线性表之链表
无头单向链表.htest。c有哨兵位双向循环链表最优的链表,在任意位置操作都是O(1)查找有平衡搜索树(AVL树和红黑树),哈希表,B树,B+树。
2024-08-24 22:09:17 278
原创 线性表之顺序表
线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。常见的线性表:顺序表、链表、栈、队列、字符串…
2024-07-29 22:54:06 271
原创 c语言程序环境和预处理
后面加上“;”是一种非常坑爹的行为对于宏不能递归xint main()//25return 0;为了避免以下情况发生xint main()//11return 0;可以define成# define PRINT(N , FORMAT) printf("the value of " # N " is " FORMAT "\n" , N) //#会把参数对应的转换成字符串 int main() {int a = 10;
2024-07-18 17:15:45 355
原创 时间复杂度与空间复杂度
/ 每次对半查找 log2(N) 在算法中简写省去2 有些写成O(lgN)严格来说写的不对。得到的结果就是大O阶。// 递归调用了N层,每次调用建立一个栈帧,每个栈帧使用了常数个空间O(1)// 具有常数个变量 尽管循环变量值改变,但利用的是一个空间。// 第一趟N 再 N-1 N-2 N-3 是等差数列求和。// 计算阶乘递归Factorial的空间复杂度?// O(1) 是确定的常数次都是O(1)// 计算BubbleSort的时间复杂度?// 计算BubbleSort的空间复杂度?
2024-07-18 16:35:37 420
原创 C语言文件操作:打开关闭,读写
因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文件。feof应用于当文件读取结束的时候,判断是读取失败结束还是文件尾结束。文本文件读取是否结束判断,判断返回值是否为EOF或者NULL。sprintf 把一个格式化的数据转化成字符串(反序列化)二进制文件的读取结束判断判断返回值是否小于实际要读的个数。fscanf是针对所有输入流的格式化输入语句。printf是针对标准输入的格式化输出语句。scanf是针对标准输入的格式化输入语句。fgets判断返回值是否为NULL。
2024-05-31 21:48:33 412
原创 C语言柔性数组
包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大 小,以适应柔性数组的预期大小。sizeof 返回的这种结构大小不包括柔性数组的内存。C99中结构体最后一个成员允许一个大小未知的数组。两种实现,推荐第一种。
2024-05-29 20:50:12 388
原创 C语言动态内存管理
学c++方向,指针、结构体、动态内存开辟这三个直接关系到数据结构的学习,非常重要(学java就还好)栈区:局部变量,形式参数堆区:malloc,calloc,realloc,free申请的空间。
2024-05-29 20:09:04 341
原创 C语言自定义类型:结构体 枚举 联合
char c;char c;//4//012FF960//012FF960//012FF960//内存中 44 33 22 11u.c = 0x00;两种方法判断当前计算机的大小端储存//int a = 1;//低->高 小端 01 00 00 00//00 00 00 01 大端union //匿名类型char c;int i;}u;u.i = 1;
2024-05-27 21:25:44 519
原创 C语言字符串函数
strstr 在字符串str1中查找是否含有字符串str2,如果存在,返回str2在str1中第一次出现的地址;errno 是C语言设置的一个全局错误码存放的变量。c语言的库函数,在执行失败时,都会设置错误码。1.计数器 2.指针-指针 3.递归。strcpy 把\0拷贝完就结束。strcmp 比较两个字符串。C语言本身没有字符串类型。strcat 字符串追加。strtok 切割字符串。
2024-05-25 13:53:10 146
原创 C语言sizeof与strlen详细比对(笔试题)
这里的地址说的都是虚拟地址,不是物理地址。数组名大部分情况下表示地址。strlen是库函数。sizeof是操作符。
2024-05-18 15:00:24 384
原创 C语言指针进阶
arr+1,不会访问arr[1],而是访问arr后面的地址。&数组名,取出的是整个数组的地址。函数指针数组:存放函数指针的数组。函数名和&函数名都是函数的地址。
2024-05-15 19:50:21 158
原创 【c语言】数据储存
debug版本内存分配由低到高,release版本会优化代码,内存开辟方式有所差异long类型在32位4字节,64位8字节。
2024-05-15 19:38:13 1695
原创 C语言结构体
struct tag{ member-list;}variable-list;struct peo //结构体类型{ char name[20]; char tele[12]; char sex[5]; int high;};struct st{ struct peo p; int num; float f;};void print2(struct peo* sp){ printf("%s %s %s %d\n", sp->name,sp->tele
2024-04-26 19:07:49 81
原创 C语言初阶指针
二级指针变量是用来存放一级指针变量的地址。arr[i]等价于*(arr+i)绝对值得到指针之间元素个数。存放指针的数组就是指针数组。3.指针指向的空间释放。数组名表示首元素地址。
2024-04-24 15:06:48 261
原创 C语言操作符详解
从左向右依次执行,整个表达式是最后一个表达式的结果。: 大小大于等于整型等类型,向上转化。整型提升 变量达不到整型大小会被提升。d+e*f 不建议写 应该加上括号。** ~ 是按二进制位取反**尽量写出只有唯一计算路径的代码。2.用库函数strcmp()比数字用<= == >=整数的二进制表示有三种。正整数源码反码补码相同。>> 右移操作符。
2024-04-23 21:24:10 192
原创 C语言函数递归与迭代
可以理解成,当if在前printf在后时,反着输出printf的功能。2.每次递归后越来越接近这个限制条件。3.满足以上两个条件也不一定递归成功。使用递归,时间复杂度2^n。
2024-04-10 19:15:24 245
原创 C语言数组
为防止以上情况发生,可以进行如下操作。数组是一组相同类型元素的整合。二维数组不能省略列数据。数组越界打印出随机值,二维数组的数组名的理解。
2024-04-10 19:14:52 203
原创 C语言函数的声明和定义
如上面的add.h和add.c文件,编译成静态库,再把add.h和静态库卖给某公司。先创建头文件add.h,再创建源文件add.c。他们合在一起是一个模块,可以叫做加法模块。静态库:将函数打包成一个文件。配置类型:静态库,点击应用。自己定义的头文件用“”生成在debug文件中。
2024-04-07 11:40:10 248
原创 C语言函数嵌套
函数不写返回值时候,默认返回类型是int。以下可以明确地说明main函数不需要参数。写一个函数,每调用一次num就会+1。找到返回下标,找不到返回-1。本质上main函数有3个参数。
2024-04-05 17:26:52 183
原创 C语言基础
逗号表达式的特点是:从左向右依次计算,整个表达式的结果是最后一个表达式的结果。三目操作符 三个操作数 exp1?exp2:exp3 真√× 假×√。c语言中没有字符串类型,用双引号引起来才行。\ddd 1-3位八进制 如\130 X。逗号表达式是逗号隔开的一串表达式。%lf 打印double类型数据。%zu 打印sizeof的返回值。\xdd 表示2个16进制字符。取模的两个操作数只能是整数。%f 打印float类型数据。例: 求出a,b的较大数。\t 制表符 table。
2024-04-05 16:40:29 175
原创 c语言的分支语句
c语言是【结构化】的程序设计语言【结构化】:顺序,选择,循环结构c语句可分为5类1·表达式语句2·函数调用语句3·控制语句 (分支,循环,转向)4·复合语句5·空语句。
2024-04-05 16:27:51 436
原创 用#define定义常量和宏
define add(x,y) ((x)+(y))//宏名add;宏的参数x,y无类型;//经过编译器处理后int c = ((a)+(b));//标识符常量num运用。首先,define不是c语言里的关键字,是一个预处理指令。
2024-04-05 16:25:09 328
原创 c语言常见关键字typedef和static的用法
/本质上,static改变了变量的存储位置,从不加时候应该存在的栈区到静态区,影响了变量的生命周期,和程序的生命周期一样。//把unsigned int重新起名为uint。//static 修饰全局变量的时候,全局变量的外部链接属性就变成了内部链接属性。//那么uint = unsined int。//这是简化后的效果,与struct node n2效果相同。//此时add()函数不再具有外部链接属性,为内部链接属性,其它源文件无法使用。
2024-04-05 16:24:33 942 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人