#include<stdio.h>
#include<stdlib.h>
typedef char DataType;
//定义队列中的结点类型
typedef struct node
{
DataType data;
struct node * next;
}qnode;
//定义队列的队头和队尾指针
typedef struct
{
qnode * front,*rear;
}linkQueue;
//初始化队列
void init(linkQueue *q)
{
q->front=q->rear=NULL;
}
//判断队列是否为空
int isEmpty(linkQueue q)
{
return NULL==q.front;
}
//元素入队
void inQueue(linkQueue *q,DataType e)
{
qnode * node;
node=(qnode *)malloc(sizeof(qnode));//新增一个结点
node->data=e;
node->next=NULL;
if(isEmpty(*q))//判断是不是第一个元素
{
q->front=q->rear=node;
}
else
{
q->rear->next=node;
q->rear=node;
}
}
//元素出队
DataType outQueue(linkQueue *q)
{
DataType x;
qnode *temp;
if(isEmpty(*q))
{
printf("It's empty,can't delete !");
return NULL;
}
else
{
temp=q->front;
x=temp->data;
q->front=temp->next;
free(temp);//释放结点所占的内存空间
return x;
}
}
void main()
{
linkQueue queue;
init(&queue);
DataType c;
while((c=getchar())!='\n')
{
inQueue(&queue,c);
}
while(!isEmpty(queue))
{
printf("%c ",outQueue(&queue));
}
printf("\n");
}
分享到:
相关推荐
顺序队列和链式队列的实现
该文件实现链式队列功能,包含队列的创建queucreat、入队add与出队output,并通过打印显示函数的执行效果。
java队列实现(顺序队列、链式队列、循环队列)
链式队列的简单实现,含有如下功能 1.创建队列; 2.销毁队列; 3.清空队列; 4.进队列; 5.出队列; 6.获取队头元素; 7.获取队列的长度。
队列的动态链式存储实现,DynaLnkQueue.cpp
队列的链式存储与实现。采用链式存储的方式实现队列,并实现了一些基本功能,包括创建、销毁、清空、追加、读取等一些常规的操作。
JAVA语言实现数据的链式结构 分享下挣挣人气
用链表的形式实现队列,提供常见操作,出队、入队……
NULL 博文链接:https://128kj.iteye.com/blog/1618731
顺序循环队列和链式队列的类定义和实现(C++).docx顺序循环队列和链式队列的类定义和实现(C++).docx
链式队列的实现 源代码 先输入要建立队列的长度 再输入队列中第i个数据 显示队列中的元素
链式队列
队列链式存储的类模板定义、相关操作及实现。
1. Queue.hpp是队列的基类,只定义基本操作,具体实现在另外两个hpp文件中 2. seqQueue.hpp是循环队列的实现 3. linkQueue.hpp是链式队列的实现 4. test.cpp是简单的测试文件,main函数在这里面
使用链表实现的队列 对应于数据机构与算法分析(c++版)第三版或第二版 Clifford A.Shaffer 重庆大学使用教材
严蔚敏-数据结构链式队列c++实现 还不错哦!
c语言实现的链式链表,对链式链表的初始化,插入,删除,等相关操作!
链式队列c++模版实现,功能:创建,删除,出入队,修改元素,包含测试代码。
【课件】3.2.3_队列的链式实现