顺序队列的初始化、进队和出队(C语言)

简介: 顺序队列的初始化、进队和出队(C语言)

队列是一种操作受限制的线性表,限制仅仅允许在表的一端插入,另一端删除

队尾:可以插入的一端
队头:可进行删除的一端
记忆:队列就像一列在隧道里的高铁

顺序队列的定义

#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef struct
{
  int data[maxsize];
  int front;//队首
  int rear;//队尾
}sqQueue;

知识点:
队空时条件front=(front+1)%maxsize
初始化队列

void initqueue(sqQueue &qu)
{
  qu.front=qu.rear=0;
}

判断队空

int isqueueempty(sqQueue qu)
{
  if(qu.front==qu.rear)
    return 1;
  else
    return 0;
}

进队

int enqueue(sqQueue &qu,int x)
{
  if((qu.rear+1)%maxsize==qu.front)
    return 1;
  qu.rear=(qu.rear+1)%maxsize;//队列未满先移动指针
  qu.data[qu.rear]=x;//存入元素
  return 1;
}

出队

int dequeue(sqQueue &qu,int &x)
{
  if(qu.front==qu.rear)
    return 0;//队列空不出
  qu.front=(qu.front+1)%maxsize;
  x=qu.data[qu.front];
  return 1;
}

复习笔记!

祝大家生活愉快!!!

目录
相关文章
|
1月前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
196 9
|
7月前
|
Linux C语言
Linux系统下C语言的队列操作
Linux系统下C语言的队列操作
152 0
|
C语言
【C语言数据结构(基础版)】第四站:栈和队列
【C语言数据结构(基础版)】第四站:栈和队列
79 0
|
25天前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
48 5
|
3月前
|
存储 C语言
数据结构基础详解(C语言): 栈与队列的详解附完整代码
栈是一种仅允许在一端进行插入和删除操作的线性表,常用于解决括号匹配、函数调用等问题。栈分为顺序栈和链栈,顺序栈使用数组存储,链栈基于单链表实现。栈的主要操作包括初始化、销毁、入栈、出栈等。栈的应用广泛,如表达式求值、递归等场景。栈的顺序存储结构由数组和栈顶指针构成,链栈则基于单链表的头插法实现。
526 3
|
6月前
|
C语言 C++
【数据结构】C语言实现:栈(Stack)与队列(Queue)
【数据结构】C语言实现:栈(Stack)与队列(Queue)
|
6月前
数据结构——队列(C语言版)
数据结构——队列(C语言版)
48 0
|
7月前
|
算法 C语言 容器
纯c语言模拟栈和队列(初学必看)
纯c语言模拟栈和队列(初学必看)
|
7月前
|
算法 C语言
【算法与数据结构】 C语言实现单链表队列详解2
【算法与数据结构】 C语言实现单链表队列详解
|
7月前
|
存储 C语言
数据结构之队列详解(C语言手撕)
数据结构之队列详解(C语言手撕)
79 2