数据结构_实验4_队列的基本操作.docx
文本预览下载声明
实验4 队列的基本操作需求分析1、掌握链接队列的基本操作函数。 2、队列的程序执行的命令包括如下: (1) 定义结构体 (2) 链队列的初始化及创建 (3) 入队操作 (4) 出队操作 (5) 链队列的打印结果 概要设计基础题①进队操作 EnQueue(LinkQueue *Q, QElemType e)②出队操作 DeQueue(LinkQueue *Q, QElemType *e)③输出队列中元素 0utputQueue(LinkQueue Q)提高题①医务室模拟 Doctor(int numOfPerson)②后缀表达式sort (LinkQueue* Q,int *score,int n)主函数 void main(){LinkQueue Q1;int i,m,n;//调用进队函数建立一个队列InitQueue(Q1);printf(调用进队函数建立一个队列:\n); for (i = 0 ; i 10; i+=2){ EnQueue(Q1,i);}//输出队列 OutputQueue(Q1);//读取队列中的第一个元素printf(读取队列中的第一个元素:\n); printf(%d \n,Q1.front-next-data);//从队列中删除元素 DeQueue(Q1,i);printf(调用一次DeQuene()删除首元素:\n); OutputQueue(Q1);DeQueue(Q1,i);printf(调用一次DeQuene()删除首元素:\n); OutputQueue(Q1); //提高题//医务室printf(请输入病人的个数:\n);scanf(%d,i);Doctor(i);//招聘模拟printf(输入生成工种数m和应聘者人数n \n);scanf(%d%d,m,n);zhaoPinMoNi(m,n);/*//循环队列 SqQueue Q;char i;char temp;int item[12];InitSqueue(Q);printf(循环队列\n);for (i = 1 ; i 5 ; i++){EnQueue(Q,i);}OutputSqueue(Q);printf(读取第一个元素\n); printf(%d \n,Q.base[Q.front ]);for (i = 0 ; i 2 ; i++){DeQueue(Q,temp);printf(删除%d:\n,temp);OutputSqueue(Q);}*/}详细设计类型定义typedef struct Qnode{int data;struct Qnode *next;}QNode,*QueuePtr;typedef struct{QueuePtr front;QueuePtr rear;}LinkQueue;调试分析算法的时空分析:时间复杂度最低为⊙(1),最高为⊙(n^2),因此总的时间复杂度为⊙(n^2)。(五)调试与结果测试链队列结果正确循环队列结果正确
显示全部