- 博客(11)
- 收藏
- 关注
原创 【数据结构】栈和队列
栈是一种特殊的线性表,他只允许在一端进行插入和删除元素操作;进行数据插入和删除操作的一端称为栈顶,另一端称为栈底;栈中的元素遵守先进后出的原则。压栈:栈的操作叫做进栈/压栈/入栈,入数据在栈顶;出栈:栈的删除操作叫做出栈,出数据也在栈顶;注意:不要把栈区和栈混为一谈:栈区是内存划分的一块区域,属于操作系统学科,而栈适用于管理数据的一种结构,他在堆区上申请空间,属于数据结构学科。.一个栈的初始状态为空。
2023-05-10 17:34:11
214
原创 【C++】-------C++ 引用
引用就是给一个已经存在的变量取别名:引用不是新定一个变量,而是给已经存在变量取一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量引用的符号和我们C语言中取地址符号一样,为&;在某类型的后面加上引用符号(&)。注意:引用类型必须和引用实体是同类型的。
2023-04-19 15:59:49
135
原创 【数据结构】------时间复杂度和空间复杂度的计算
算法 (Algorithm) 就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。数据结构和算法是相辅相成的,二者是我中有你、你中有我的关系:在一个数据结构中可能会用到算法来优化,一个算法中也可能用到数据结构来组织数据。1.时间复杂度和空间复杂度都是用大O的渐进表示法来表示;2.时间复杂度看运算执行的次数、空间复杂度看变量定义的个数;3.在递归中,时间复杂度看调用的次数,空间复杂度看调用的深度;
2023-04-17 16:26:35
618
原创 【无标题】C++入门
定义命名空间很简单,只要使用namespace关键字,后面跟上命名空间名字,然后接一对{}即可,{}即为命名空间的成员命名空间的名称是随意取得;命名空间中可以定义函数、变量、类型;命名空间可以嵌套同一个工程中允许存在多个相同名称的命名空间,编译器最后会将其合成到同一个命名空间中;- 命名空间中可以定义函数、变量、类型;//定义变量 int strlen = 10;//定义类型 typedef struct SLNode {int data;} SLNode;
2023-04-17 09:41:14
123
原创 C语言------动态内存管理
c语言提供了一个动态内存开辟函数void * malloc(size_t size) # void * 函数返回值,申请成功返回指向开辟的空间的指针,申请失败则返回 NULL;# size _t size参数是定开辟多少个字节的空间void * malloc(size_t size) # void * 函数返回值,申请成功返回指向开辟的空间的指针,申请失败则返回 NULL;# size _t size参数是定开辟多少个字节的空间NULL;
2023-04-14 17:39:48
325
原创 C语言----深度剖析数据在内存中的存储
大端储存模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端存储模式:是指数据的低位保存在内存的低地址中,数据的高位保存在内存的高地址中;为什么有大端和小端为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8 bit。
2023-04-10 10:45:23
94
原创 C语言----结构体
有了结构体类型,那如何定义变量,其实很简单。int x;int y;} p1;//声明类型的同时定义变量p1 struct Point p2;//定义结构体变量p2 //初始化:定义变量的同时赋初值。x , y };struct Stu //类型声明 {//名字 int age;//年龄 };//初始化 struct Node {int data;} n1 = {10 , {//结构体嵌套初始化 struct Node n2 = {20 , {//结构体嵌套初始化。
2023-04-06 15:40:34
75
原创 C语言----指针
(scanf后不要加\n)1.指针是内存中一个最小单元的编号,也就是地址2.平时口语中说的指针,通常是指指针变量,是用来存放内存地址的变量;总结:指针就是地址,口语中说的指针通常是指针变量。那我们就可以理解:内存:指针变量:我们可以通过&(取地址操作符)取出变量的内存起始地址,把地址可以存放到一个变量中,这个变量就是指针int a=10;//从内存之中开辟一块空间int *p=&a;//这里我们对变量a,取出他的地址,可以使用&操作符。
2023-04-06 10:36:56
222
1
原创 C语言-------函数
自定义函数和库函数一样,有函数名,返回值和函数参数statement;//语句项 } ret_type 返回类型fun_name 函数名para1 函数参数//get_max函数设计-找出两个整数最大值(x) :(y);return 0;//交换整形tmp = x;x = y;y = tmp;tmp = * px;* py = tmp;return 0;1.告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。
2023-04-03 20:28:22
339
1
原创 函数栈帧的创建和销毁
1.局部变量是怎么创建的:函数分配好栈帧空间,栈帧空间初始化,在分配给局部变量;2.为什么局部变量的值是随机值:随机值是放进去的;3.函数怎么传参?传参的顺序是怎么样的?从右向左压栈,通过指针偏移量找到形参4.形参和实参是什么关系?形参是压栈的时候开辟的空间,形参值上是相同的,空间是独立的,形参是实参的一份拷贝,改变形参不会影响实参。5.函数调用是做什么的?call指令6.函数调用是结束后怎么返回的?
2023-03-30 21:57:55
81
原创 C语言------数组
数组名是数组首元素地址(有两个例外)如果数组名是首元素地址,那么:输出结果为40?补充:1.sizeof(数组名),计算整个数组大小,sizeof内部单独放一个数组名,数组名表示整个数组2.&数组名,取出的是数组的地址。&数组名,数组名表示整个数组。除此1、2两种情况外,所有的数组名都表示数组首元素的地址;
2023-03-25 22:30:21
146
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅