美文网首页
链式队列操作集

链式队列操作集

作者: 日常表白结衣 | 来源:发表于2017-08-06 13:18 被阅读0次
/* 链表队列操作集 */

#include<stdio.h>
#include<stdlib.h>

typedef int ElemnetType;
typedef struct Node{
    ElemnetType Data;
    struct Node *Next;
}*List;

typedef struct QNode{
    List rear; //队尾指针始终指向单链表尾节点
    List front;//队头指针始终指向单链表头节点
}*Queue;

Queue CreateQueue(); //建立队列
void Enqueue(ElemnetType ch,Queue Q);//入对列
ElemnetType TopElementOfQueue(Queue Q);//取队头元素
void DelQueue(Queue Q);//出队列

int main()
{
    Queue PtrQ;
    PtrQ=CreateQueue();

    for(int i=0;i<10;i++){
        Enqueue(i,PtrQ);
    }

    printf("Top %d\n", TopElementOfQueue(PtrQ));
    system("pause");

    return 0;
}

Queue CreateQueue()
{
    Queue Q;
    Q = (Queue)malloc(sizeof(struct QNode));
    if(Q==NULL) return NULL;
    Q->front=Q->rear=NULL;

    return Q;
}

/*  无表头链表
    元素ch入队,队尾插入 
*/
void Enqueue(ElemnetType ch,Queue Q)
{
    List temp;
    temp=(List)malloc(sizeof(struct Node));

    temp->Data=ch;
    temp->Next=NULL;
    if(Q->rear==NULL){
        Q->rear=Q->front=temp;
    }else{
        Q->rear->Next=temp;
        Q->rear=temp;
    }
}

ElemnetType TopElementOfQueue(Queue Q)
{
    if(Q->front!=Q->rear) //队列不为空
        return Q->front->Next->Data;
}

/* 队列出队,队头删除 */
void DelQueue(Queue Q)
{
    List temp;
    ElemnetType ch;

    if(Q->front=NULL){
        printf("the Queue is empty.\n");
        return;
    }else{
        temp=Q->front;

        if(Q->front==Q->rear){
            Q->front=Q->rear=NULL;  //仅有一个元素
        }else{
            Q->front=Q->front->Next;//多个元素
        }
        ch=temp->Data;
        free(temp);
    }
}

相关文章

  • 链式队列操作集

  • C语言数据结构——线性表链式循环队列(链表实现方式)

    队列相关知识及操作请参看上一章 C语言数据结构——线性表循环队列(动态数组实现方式) 一、链式队列 链式队列 : ...

  • 第五讲-队列

    队列:先进先出 基本操作:出队(enqueue)or入队(dequeue) 顺序队列和链式队列 用数组实现的队列叫...

  • 数据结构之队列的链式存储结构

    之前写了队列的顺序存储结构,队列的定义及操作见 数据结构之队列的顺序存储结构 队列的链式存储结构与操作实现 队列接...

  • 数据结构基础--链式队列

    链式队列指的是使用链表来实现的队列,操作比较简单 定义一个链式队列以及相关宏定义 初始化队列创建一个头结点并且将将...

  • 数据结构题目:队列

    数据结构题目:队列 题目:链式队列的基本操作 将从键盘输入的一系列字符存储到链式队列中,当输入的字符为’0’时,执...

  • 队列

    文章结构 什么是队列 实现队列顺序队列链式队列循环队列 Java中的队列 1. 什么是队列 队列也是一种操作受限的...

  • 数据结构与算法(四)队列和Java ArrayDeque

    本文主要包括以下内容: 队列基本概念 队列的相关操作 队列的顺序存储 循环队列 队列的链式存储 Java Link...

  • 队列

    如何理解“队列”? 特点 先进先出,后进后出 “操作受限”的线性表,队列尾部插入,队列头部删除 顺序队列和链式队列...

  • 链式队列的定义,ios基础知识篇!

    数据结构与算法-链式队列 链式队列的定义 链式队列是用链表来实现的队列,不存在队满的情况。链式队列也包里队列的特点...

网友评论

      本文标题:链式队列操作集

      本文链接:https://www.haomeiwen.com/subject/qlewlxtx.html