- 博客(7)
- 收藏
- 关注
原创 队列的基本操作
//队列也分为顺序表示和链式表示------队列的顺序存储------#define MAXQSIZE 100 //预计队列可能的最大长度typedef struct{QElemTypedef *base; //存储空间的地址,QElemTypedef为队列元素的类型;int front; //头指针int rear; //尾指针}SqQueue;由于队尾入队,队头入队造成的“假溢出”,使得实际空间的浪费,为解决问题形成了循环队列由此有两种判断队空与否处理方法:1.(
2022-04-20 16:54:51 987
原创 栈的基本操作(C语言)
顺序栈-------------存储结构--------------#define MAXSIZE 100 //顺序栈的存储空间的初始分配量typedef struct{SElemType *base; //栈底指针SElemType *top; //栈顶指针int stacksize; //栈的最大可用容量}SqStack;1.初始化O(1){SqStack* S.base =(SqStrack*)malloc(sizeof(MAXSIZE);if(!S.b..
2022-04-13 16:58:54 553
原创 6-8 青蛙跳台阶 (10 分)
一只青蛙一次可以跳上1级台阶、2级台阶、3级台阶。求这只青蛙跳上一个n(0<=n<=20)级台阶总共有多少种跳法(先后次序不同算不同的结果)。函数接口定义:int climb ( int n ); n为台阶数,函数须返回 n级台阶的跳法总数。裁判测试程序样例:#include <stdio.h> int climb(int n); int main() { int n; scanf("%d", &n);printf("
2022-04-10 10:32:07 1216 1
原创 栈与队列的基本定义
栈只在表尾插入和删除的线性表。队列只在队尾插入,队头删除。栈表尾为栈顶,表头为栈底,修改特点为后进先出(LIFO),定义栈的结构体时,定义指针*base(栈底指针),*top(栈顶指针)。对于*base一般空表为NULL,而*top有多种情况,其中指向栈顶元素时,当为空栈时,*top=-,,当指向的为将入栈的元素的位置时,空栈为*top=0;入栈和出栈的过程中*base=栈底元素,除空栈外不改变,而*top插入元素增1;删除则减1;出栈入栈顺序:例:ABCD(四种不同元素),14
2022-04-06 16:10:14 206
原创 循环链表与双向链表
循环链表1.不同与单循环链表,链表最后一个元素的的指针域不为NULL,指向头节点。判别条件:单链表:p!=NULL;循环链表:p!=L;优点:从任何一个节点开始,可以遍历整个链表;带尾指针的两个循环链表合并Ta,Tb,P分别为A,B两个链表的尾指针与指针。p=Ta->next; //Ta->next为A链表的头节点,将头节点的位置存在PTa->next=Tb->next->next; //将Tb的首元节点连接到Ta表尾(Tb的头节点不接入)f
2022-03-30 16:59:45 354
原创 顺序表的时间复杂度分析
1.顺序表的初始化中函数的应用:L.elem=new ElemType[MAIXSIZE];//为顺序表分配一个大小为MAIXSIZE的数组空间。运用了C++中的new函数进行动态地址分配。一般分配模式为:未知量=new 类型名 (列表初值)//列表初值可无。例:int*p= new int;或int *p=new int (10);每个new 都要对应一个delete,来释放分配的内存;L.elem=(int *)malloc(number *size of[MAIXSIZE])
2022-03-12 12:29:57 5831
原创 绪论基本内容
数据是客观事物的符号表示(数字,字母,文字等)数据元素是数据的基本单位(非最小单位)。数据项是组成数据元素的最小单位。数据对象是性质相同的数据元素的集合,是数据的子集。数据结构包括两部分:关系和数据元素。抽象数据类型包括三部分:数据对象、数据对象关系上的集合、数据对象的基本操作的集合。参数传递在C中只有值传递,而在C++中有值传递和地址传递,即有引用参数传递,符号表示为“&”过程中形参变化实参也变化(即对实参起别名)。动态分配中C为malloc与free,在C++中为
2022-03-07 18:27:50 602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人