- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 IO进程
FILE代表的是结构体,描述所操作文件的信息3补充:sudo ctags -R的使用(可以追代码):简历搜索索引vi -t FILE选择合适的编号将光标定位在目标位置,ctrl+] :向下追代码ctrl+t:回退q:退出。
2024-08-14 19:42:45
445
原创 链式队列的使用
1)逻辑结构:线性结构2)存储结构: 链式存储//数据域//指针域typedef struct//将队列头指针和尾指针封装到一个结构体里//相当于队列的头指针//相当于队列的尾指针//有了链表的头指针和尾指针,那么我们就可以操作这个链表(1)创建一个空的队列(2)入列(3)出列二:头文件的定义。
2024-08-10 14:39:16
696
原创 顺序表的使用
int last;//最后一个有效元素下表}seqlist_t;//1.创建一个空的顺序表//返回的是申请空间的首地址//2.向顺序表的指定位置插入数据//post第几个位置,data插入的数据//3.遍历顺序表sequence 顺序 list 表//4.判断顺序表是否为满,满返回1 未满返回0//5.判断顺序表是否为空//6.删除顺序表中指定位置的数据post删除位置//7.清空顺序表//8.修改指定位置的数据//post被修改的位置,data修改成的数据。
2024-08-10 14:10:42
112
原创 栈的使用(先入后出)
什么是栈?只能在一端进行插入和删除操作的线性表(又称为堆栈),进行插入和删除操作的一端称为栈顶,另一端称为栈底2.栈特点先进后出 FILO first in last outLIFO31顺序栈1逻辑结构线性结构2存储结构顺序存储3操作入栈出栈seqstackint*data;intmaxlen;inttop;seqstack_t;
2024-08-08 15:56:47
530
原创 链表的使用和总结
/数据域//指针域,指向自身结构体的指针//1.创建一个空的单向链表(有头单向链表)//2.向单向链表的指定位置插入数据//p保存链表的头指针 post 插入的位置 data插入的数据//3.遍历单向链表//4.求单向链表长度的函数//5.删除单向链表中指定位置的数据 post 代表的是删除的位置//6.判断单向链表是否为空 1代表空 0代表非空//7.修改指定位置的数据 post 被修改的位置 data修改成的数据。
2024-08-07 20:25:16
727
原创 数据结构.
等差数列{an}的通项公式为:an=a1+(n-1)d。前n项和公式为:Sn=n*a1+n(n-1)d/2或Sn=n(a1+an)/2。如果有常数项,将其置为1 //当f(n)的表达式中只有常数项的时候,有意义 f(n) = 8。f(n) //算法的可执行语句重复执行的次数 用问题规模n的某个函数f(n)来表达。高效性:可执行语句重复执行的次数来衡量算法是否高效(时间复杂度)(1)根据问题规模n写出表达式 f(n)2.1:数据:不是单一数值,与集合类似。T(n) //问题规模的时间函数。
2024-08-06 13:53:47
930
原创 递归函数以及结构体
斐波那契数列:指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*) 求第五个数。求5的阶乘5!12345递归公式:1 n<=1fac(n)=
2024-07-26 19:06:57
999
原创 函数相关内容
1.1定义格式存储类型 数据类型 函数名(数据类型 形参1, 数据类型 形参2,...)函数体;return a+b;int num=0;num=a+b;return num;fun(1,2);return 0;5.3:参数传递值传递单向传递,将实参这个数据传递给形参使用,函数内改变形参函数外的实参不会受影响,因为他们是属于不同的空间。地址传递双向传递,在函数内通过传递的地址修改地址所指空间中的内容,实参会随之变化。(*a)++;(*b)++;//11 31。
2024-07-25 20:49:48
290
原创 二级指针以及数组的使用
不允许修饰普通变量: void a;//错误!!可以修饰指针: void *p;//此时p是一个任意类型的指针使用场景:函数传参或函数返回值。例如malloc函数的返回值。注意: 通过void型指针进行取内容时,需要对地址进行强转。转换方式:强制转换: (int *) p 为右值。1.2:大小端的使用大端:数据的低位存储在高地址位,数据的高位存储在低地址位,大端字节序称为MSB小端:据的低位存储在低地址位,数据的高位存储在高地址位,小端字节序称为LSB。
2024-07-25 20:20:26
1298
原创 一级指针的相关知识梳理
存储类型数据类型 *指针变量名;数据类型代表指针所指空间存放的数据的数据类型intp;定义了一个指向int类型数据的指针变量p注释:常量不可以改变那么变量p存放的就是a的地址q变量存放的是b的地址。通过运算符就可以访问地址所表示空间里面内容。指针操作符和初始化&:取变量的地址*:取地址里的内容aa;和是互逆运算(可以抵消)a;错误。
2024-07-23 19:36:02
410
原创 冒泡排序与选择排序
(1)首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上。(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换—第二趟选择排序(3)重复上述过程,共经过n-1趟排序后,排序结束。
2024-07-22 19:05:24
691
原创 一维数组的使用
int main()i++)//strlen计算长度i++)注释:数组名代表数组首地址,第一个地址元素,是一个常量,不能够被赋值数组表达式中可以包含常量和符号常量,即宏定义,不包含变量int main()第一个元素的访问:a[0]第n个元素的访问:a[n]数组越界:当定义数组为int类型a[5]时,其元素的访问包含a[0],a[1],a[2],a[3],a[4];超出其限定范围例如:a[5]则视为越界int main()数组越界a[3]=10;//数组越界。
2024-07-19 20:30:21
354
原创 控制语句与循环语句的使用
首先执行表达式1进行赋值,然后判断表达式2是否成立,如果成立就进入循环执行语句块,再执行表达式3进行增值或减值然后继续判断表达式2是否成立,直到表达式2不成立退出循环。2. case后面的break可以省略,但是省略时会顺序执行,直到遇到break结束;思路:for循环,确定循环范围,定义三个变量接受,if判断各位立方和是否等于这个数本身。对于其他类型,则必须使用if语句。(3)case标签必须是唯一性的表达式;(2)case标签必须是常量表达式,如42或者'4'。(1)只能针对基本数据类型中的。
2024-07-18 20:02:35
507
原创 c基础知识
&&:前表达式为假,后续不执行||:前表达式为真,后续不执行注释:注意运算优先级^:相同为0,不同为11111 1110 1111 10110000 0101置零公式与之置一公式:置一公式:a|(1<<n)置零公式:a&(~(1<<n))从右向左:单条赋4:字符的输入输出输出:putchar()/ /printf()输入:getchar()/ /scnaf()//scanf("%d",&a);垃圾字符处理方式:printf函数中格式的区别:格式字符:%d int%ld long
2024-07-17 19:50:37
682
原创 Linux基本命令以及进制数转换知识汇总
n,$s/str1/str2/g替换第n行到最后一行中所有str1为str2。n,ms/str1/str2/g替换第n行到第m行中所有str1为str2。-- a从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。-- i从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。:s/str1/str2 光标所在行第一个str1替换成str2。s/str1/str2/g 光标所在行所有str1替换成str2。%s/str1/str2/g每一行中所有str1来替换成str2。
2024-07-15 20:11:12
702
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人