- 作者:老汪软件技巧
- 发表时间:2024-01-10 17:00
- 浏览量:
队列也是线性表,也是分为两种的:1、顺序队列 2、链队列
顺序队列
#include
#include
typedef struct {
char *base;
int front;
int erer;
int size;
}SqQueue;
void initSqQueue(SqQueue *queue,int size){
queue->base=(char*)malloc(sizeof(char)*size);
queue->erer=0;
queue->front=0;
queue->size=size;
}
//入队
void enqueue(SqQueue *queue,char value){
if(((queue->erer+1)%queue->size)==queue->front){
printf("队满操作\n");
}else{
queue->base[queue->erer%queue->size]=value;
queue->erer=++queue->erer%queue->size;
}
}
//出队
void dequeue(SqQueue *queue){
if(queue->front!=queue->erer){
printf("%c",(queue->base)[queue->front]);
queue->front=++queue->front%queue->size;
}else{
printf("队空操作!\n");
}
}
int getSize(SqQueue *queue){
return (queue->erer-queue->front+queue->size)%queue->size;
}
int main(){
SqQueue queue;
initSqQueue(&queue,10);
enqueue(&queue,'I');
enqueue(&queue,' ');
enqueue(&queue,'L');
enqueue(&queue,'o');
enqueue(&queue,'v');
printf("%d\n",getSize(&queue));
system("pause");
return 0;
}
链队列
#include
#include
typedef struct lqSqNode {
char value;
struct lqSqNode *next;
}*LinkSQ,lqSqNode;
typedef struct LqQueue {
lqSqNode *front;
lqSqNode *erer;
int size;
}LqQueue;
//初始化链队列
void initLqQueue(LqQueue *queue){
LinkSQ linksq=(LinkSQ)malloc(sizeof(lqSqNode));
linksq->next=NULL;
queue->front=linksq;
queue->erer=linksq;
queue->size=0;
}
//入队
void enqueue(char value,LqQueue *queue){
lqSqNode *node=(lqSqNode*)malloc(sizeof(lqSqNode));
node->value=value;
node->next=NULL;
queue->erer->next=node;
queue->erer=node;
++queue->size;
}
//出队
void dequeue(LqQueue *queue){
if(queue->front->next!=NULL){
lqSqNode *node=queue->front->next;
// printf("%c\n",node->value);
queue->front->next=node->next;
free(node);
--queue->size;
}else{
printf("队空操作!\n");
}
}
int main(){
LqQueue queue;
initLqQueue(&queue);
enqueue('i',&queue);
enqueue('L',&queue);
enqueue('k',&queue);
enqueue('l',&queue);
// dequeue(&queue);
// dequeue(&queue);
// dequeue(&queue);
// dequeue(&queue);
// dequeue(&queue);
printf("%d\n",queue.size);
system("pause");
return 0;
}
上一个图形绘制2
下一个自定义代码块详解
相关文章
元风软件管理员
元风软件技巧专注分享操作系统、办公软件和手机应用的技巧方法,致力提升软件爱好者的学习和工作效率。
热门文章