表
李柒岁
这个作者很懒,什么都没留下…
展开
-
双端队列详解+C语言实现基本操作
双端队列的定义:可以在两端做插入和删除操作的队列就叫做双端队列一般来说,双端队列用循环数组来实现。push 将元素插入表头 front- -pop 删除头部元素 front++inject 将元素插入到表尾 rear++eject 删除尾部元素 rear- -我们初始化时,rear=front=0;我们在实现双端队列是时候需要注意以下几点:1.front指向第一个元素的下标(初始化为0)2.rear指向最后一个元素的下标的下一个位置(初始化为0)对于每一种操作:Push:先把front原创 2020-09-29 17:52:37 · 2128 阅读 · 1 评论 -
【图的建立】邻接矩阵/邻接表C语言实现
邻接矩阵表示图无权图实例:1.图基本结构#include<stdio.h>#include<malloc.h>#define MAXSIZE 100/******* 邻接矩阵 *******/typedef struct Gnode{ int nv ;//顶点 int ne ;//边 int G[MAXSIZE][MAXSIZE]; int data[20];//存顶点的数据}*graph;2.初始化一个有所有顶点原创 2020-07-12 11:07:34 · 1395 阅读 · 0 评论 -
单链表反转第m个结点到第n个结点/非递归C语言实现
第m个结点到第n个结点反转单链表step1step2step3代码实现#include<stdio.h>#include<malloc.h>typedef struct node{ int data; struct node *next;}*list;list gen(){ list head,end,node; int num; head=(list)malloc(sizeof(struct node));原创 2020-07-06 11:50:43 · 486 阅读 · 0 评论 -
PTA 7-18 银行业务队列简单模拟 (25分)
题目出处设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。输出格式:按业务处理完成的顺原创 2020-07-02 20:16:42 · 1189 阅读 · 0 评论 -
队列【链表】储存C语言代码+详解
队列的储存还可以用一个单链表来实现。链表最后一个元素不可当作front,因为单链表无法找到前一个元素,因此无法方便进行删除(出队)操作。由以上分析,front指向链表的第一个元素,rear指向链表最后一个元素。...原创 2020-06-27 17:52:42 · 617 阅读 · 0 评论 -
队列顺序【数组】储存C语言代码+详解
队列(Quene):具有一定约束关系的线性表。 插入和删除:只能在一段插入,在另一端删除。特点:1.先来先服务 2.先进先出(FIFO)。操作集:1.Quene CreatQuene(int Maxsize);//生成长度为Maxsize的空队列2.int IsFullQ(Quene Q,int Maxsize);//判断队列是否已满3.int IsEmptyQ(Quene Q);//判断队列是否为空4.void AddQ(Quene Q,ElementType item);//将数据item入原创 2020-06-27 10:27:19 · 618 阅读 · 0 评论 -
线性表堆栈的链表储存C语言代码+详解注释
当用单向链表结构储存堆栈时,top只能位于链表表头,此时插入和删除都很方便,如果top在链表的表尾,那么无法进行删除操作。1.基本结构typedef struct SNode *stack;struct SNode{ ElementType Data; struct SNode *Next;};2.创建空栈stack gen(){ stack s; s=(stack)malloc(sizeof(stack)); s->Next=NULL;原创 2020-06-26 12:09:01 · 177 阅读 · 0 评论 -
线性表堆栈的顺序储存C语言代码+详解注释
1.入栈void Push(stack ptrS,ElementType item){ if(ptrS->top==MAXSIZE-1) { printf("堆栈满"); return; } else{ ptrS->top++; ptrS->Data[ptrS->top]=item; /*等价于 ptrS->Data[++(ptrS->top)]=.原创 2020-06-25 23:36:55 · 193 阅读 · 0 评论 -
线性表的链表C语言实现基本操作 代码+注释详解 含头指针&不含头指针【求表长,初始化,插入,删除,遍历】
线性表的链表实现基本操作详解求链表表长查找元素插入元素删除元素求链表表长//1.求表长int Length(List Ptrl){ List p = Ptrl;//P是一个临时的指针,指向链表的头 int j=0;//计数器 while (p!=NULL)//while(p) { p=p->next; j++;//当前p指向第j个元素 } return j;}2.查找①按序原创 2020-06-24 23:32:13 · 1579 阅读 · 0 评论 -
线性表的数组实现基本操作 代码+注释详解
线性表的数组实现基本操作1.建立空表2.查找3.插入4,删除1. 建立空表2. 查找元素3. 插入元素4. 删除元素结构体typedef struct LNode *List;struct LNode{ ElementType Data [MAXSIZE]; int Last;//线性表最后一个元素位置};struct LNode L;List Ptrl;访问下标为i的元素:L.Data[i]或Ptrl->Data[i]线性表的长度 L.Last+1或Ptrl原创 2020-06-24 17:53:45 · 355 阅读 · 0 评论