实验四队列的存储结构和基本操作.docVIP

  • 11
  • 0
  • 约3.42千字
  • 约 4页
  • 2015-09-26 发布于重庆
  • 举报
实验四队列的存储结构和基本操作

实验四 队列的存储结构和基本操作 实验内容 1.链式队列的存储结构 C语言中的链式队列存储结构描述: —————链式队列的存储结构———————— typedef struct QNode { QElemType data; /*队列中元素*/ Struct QNode *next; } Qnode,*QueuePtr; /*队列中头、尾指针存储类型定义*/ typedef struct { QueuePtr front,rear; /*对头、对尾指针*/ } LinkQueue; /*链式队列数据类型*/ 2. 链式队列的基本操作 (1)初始化操作:构造一个空链式队列Q。 (2)销毁操作:释放队列空间。 (3)清空操作:将链式队列设置为空队列。 (5)进队列操作:在链式队列队尾插入一个新的元素作为新的队尾元素。 (6)出队列操作:将对头元素从队列中删除,并将结果返回。 3. 链式队列操作实现的操作步骤 (1)实现将链式队列的存储结构和基本操作程序代码。 (2)实现main主函数。 4.程序代码完整清单 #include stdio.h #include malloc.h #define MaxSize 5 typedef char ElemType; typedef struct qnode { ElemType data; struct qnode *next; } QNode; typedef struct { QNode *front; QNode *rear; } LiQueue; //基本操作函数声明 void InitQueue(LiQueue *q); /*初始化链式队列*/ void ClearQueue(LiQueue *q); /*销毁链式队列*/ int QueueLength(LiQueue *q); /*链式队列长度*/ int QueueEmpty(LiQueue *q); /*清空链式队列*/ void enQueue(LiQueue *q,ElemType e); /*入链式队列*/ int deQueue(LiQueue *q,ElemType e); /*出链式队列*/ void main() { ElemType e; LiQueue *q; printf((1)初始化链队q\n); InitQueue(q); printf((2)依次进链队元素a,b,c\n); enQueue(q,a); enQueue(q,b); enQueue(q,c); printf((3)链队为%s\n,(QueueEmpty(q)?空:非空)); if (deQueue(q,e)==0) printf(队空,不能出队\n); else printf((4)出队一个元素%c\n,e); printf((5)链队q的元素个数:%d\n,QueueLength(q)); printf((6)依次进链队元素d,e,f\n); enQueue(q,d); enQueue(q,e); enQueue(q,f); printf((7)链队q的元素个数:%d\n,QueueLength(q)); printf((8)出链队序列:); while (!QueueEmpty(q)) { deQueue(q,e); printf(%c ,e); } printf(\n); printf((9)释放链队\n); ClearQueue(q); } void InitQueue(LiQueue *q) /*初始化链式队列 操作结果:构造一个空队列Q*/ { q=(LiQueue *)malloc(sizeof(LiQueue)); q-front=q-rear=NULL; } void ClearQueue(LiQueue *q) /*释放链式队列 操作结果:释放*/ { /* 链式队列结点空间*/ QNode *p=q-front,*r; if (p!=NULL) /*释放数据结点占用空间*/ { r=p-next; while (

文档评论(0)

1亿VIP精品文档

相关文档