链队C语言的使用

简介: 链队C语言的使用

链队:采用链表来存储队列

链队类型的使用

#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef struct QNode
{
  int data;
  struct QNode *next;
}QNode;
typedef struct
{
  QNode *front;
  QNode *rear;
}Liqueue;

初始化链队

void initQueue(Liqueue *&lqu)
{
  lqu=(Liqueue*)malloc(sizeof(Liqueue));
  lqu->front=lqu->rear=NULL;
}

判断队空

int isQueueEmpty(Liqueue *lqu)
{
  if(lqu->rear==NULL||lqu->front==NULL)
    return 1;
  else
    return 0;
}

入队算法

void enQueue(Liqueue *lqu,int x)
{
  QNode *p;
  p=(QNode*)malloc(sizeof(QNode));
  p->data=x;
  p->next=NULL;
  if(lqu->rear==NULL)//若队列空,新结点是队首结点,也是队尾结点
    lqu->front=lqu->rear=p;
  else
  {
    lqu->rear->next=p;
    lqu->rear=p;//新结点链接到队尾,p指向它
  }
}

出队算法

int deQueue(Liqueue *lqu,int &x)
{
  QNode *p;
  if(lqu->rear==NULL)//队空不能出队
    return 0;
  else
    p=lqu->front;
  if(lqu->front==lqu->rear)//队列只有一个结点的处理
    lqu->front=lqu->rear=NULL;
  else
    lqu->front=lqu->front->next;
  x=p->data;
  free(p);
  return 1;
}

虽然链队特点不存在队列满上溢

这里有个bug就是队列满的时候还继续入队,内存满

今天的链队复习就到这里

目录
相关文章
|
3月前
|
Unix 程序员 C语言
初识C语言
C语言源于1972年,由贝尔实验室的丹尼斯·里奇和肯·汤普逊在开发UNIX操作系统过程中设计。它基于B语言改进而成,旨在成为一种实用的编程工具。尽管许多语言追求教育或易用性目标,但专为程序员设计的C语言,如今已成为主流编程语言之一。
32 8
|
3月前
|
存储 机器学习/深度学习 编译器
一篇文章,把你的C语言拉满绩点
一篇文章,把你的C语言拉满绩点
19 0
|
自然语言处理 Java 编译器
你知道C语言吗?
了解C语言是什么,以及代码是怎么跑起来的,初学者必看
|
8月前
|
存储 C语言
初识C语言(二)
初识C语言(二)
|
8月前
|
存储 人工智能 编译器
C语言:练习5
C语言:练习5
59 2
|
存储 缓存 编译器
初识C语言(三)
初识C语言(三)
|
8月前
|
Java 程序员 编译器
什么是C语言
什么是C语言
182 0
|
8月前
|
C语言
C语言中的exit函数
C语言中的exit函数
176 0
|
C语言
C语言:%d, %2d, %02d 等
C语言:%d, %2d, %02d 等
|
存储 Java 编译器
初识c语言(一)
初识c语言(一)
135 0
初识c语言(一)