首页 > 代码库 > 链式队列定义、插入、删除

链式队列定义、插入、删除

#include <stdio.h>#include <stdlib.h>#define ElemType inttypedef struct QNode{    ElemType data;//定义队列中的元素    struct QNode *next;}QNode;typedef struct LinkQueue{    QNode *front;    QNode *rear;}LinkQueue;//定义一个队列,队列只有一个头指针和一个尾指针//队列的初始化void InitQueue(LinkQueue *q){    q->front = (LinkQueue*)malloc(sizeof(QNode));    if(!q->front)    {        exit(0);    }    q->rear = q->front;    q->front->next = NULL;}//队列的插入void InsertQueue(LinkQueue *p,ElemType *e)//队列为p,要插入的元素为e,队列的rear指针指向队列的最后一个元素。队列的front指针指向头结点,头结点无元素{    QNode *ptr;    ptr = (LinkQueue*)malloc(sizeof(QNode));    ptr->data = http://www.mamicode.com/*e;"%2d",e);    }    return 0;}

 输入一个字符串以字符‘#‘结束,在屏幕上打印出来

#include <stdio.h>#include <stdlib.h>#define M 100#define ElemType chartypedef struct QNode{    ElemType data;//定义队列中的元素    struct QNode *next;}QNode;typedef struct LinkQueue{    QNode *front;    QNode *rear;}LinkQueue;//定义一个队列,队列只有一个头指针和一个尾指针//队列的初始化void InitQueue(LinkQueue *q){    q->front = (LinkQueue*)malloc(sizeof(QNode));    if(!q->front)    {        exit(0);    }    q->rear = q->front;    q->front->next = NULL;}//队列的插入void InsertQueue(LinkQueue *p,ElemType *e)//队列为p,要插入的元素为e,队列的rear指针指向队列的最后一个元素。队列的front指针指向头结点,头结点无元素{    QNode *ptr;    ptr = (LinkQueue*)malloc(sizeof(QNode));    ptr->data = http://www.mamicode.com/*e;"输入字符串:\n");    scanf("%c",&c);    while(c != ‘#‘)    {        InsertQueue(&p,&c);        len++;        scanf("%c",&c);    }    printf("字符串为:\n");    for(i = 1;i <= len;i++)    {        DeleteQueue(&p,&e);        printf("%c",e);    }    return 0;}

  

 

链式队列定义、插入、删除