数据结构实验报告(实验3,实验4) 联系客服

发布时间 : 星期三 文章数据结构实验报告(实验3,实验4)更新完毕开始阅读14c38f48178884868762caaedd3383c4ba4cb45d

}

}

printf(\队内元素为:\ OutputQueue(head);printf(\ break; case 2: if(DeQueue(&head,&tail,&i)==0) { printf(\出队元素为:%d\\n队内元素为:\ OutputQueue(head); printf(\ } else printf(\队空\\n\\n\ break; }

2、基础题2

(1)画出数据结构基本运算的流程图

(2)程序运行主要结果截图

测试用例:依次输入入队元素34,67,45,56,程序运行结果如图

调用OutputQueue函数 输出操作结果 调用EnQueue函数 调用DeQueue函数 1 进队 2 出队 0 退出 Switch(op) 主函数

测试用例:让元素34,67出队,程序运行结果如图

(3)程序源代码 #include #include #define MAXN 5

int EnQueue(int *queue,int maxn,int *head,int *tail,int x) { if((*tail+1)%maxn==*head) return 1; *tail=(*tail+1)%maxn; queue[*tail]=x; return 0; }

int DeQueue(int *queue,int maxn,int *head,int *tail,int *cp) { if(*head==*tail) return 1; *head=(*head+1)%maxn; *cp=queue[*head]; return 0; }

void OutputQueue(int *queue,int maxn,int h,int t) { while(h!=t) {

h=(h+1)%maxn; printf(\ } printf(\}

int main() { int q[MAXN]; int qh=0,qt=0; int op,i; while(1) { printf(\请选择操作,1:进队 2:出队 0:退出\\n\ fflush(stdin); scanf(\ switch(op) { case 0:return 0; case 1: printf(\请输入进队元素:\ scanf(\ if(EnQueue(q,MAXN,&qh,&qt,i)!=0) printf(\队列满\\n\ else{ printf(\入队成功,队内元素为:\\n\ OutputQueue(q,MAXN,qh,qt); } break; case 2: if(DeQueue(q,MAXN,&qh,&qt,&i)==0) { printf(\出队元素为:%d ,队内元素为:\\n\ OutputQueue(q,MAXN,qh,qt); } else printf(\队空\\n\ break; } } }

3、提高题

(1)画出数据结构基本运算的流程图

rive-nowtime 主函数 输入病人总数n n = 0 ? 是 退出 否 是 n<0或n>20 否 申请内存 调用InitData函数生成病人到达及处理时间的随机数列 i0? pwait+=nowtime-curr.arrvie dwait+=p[i].ar 是 p[i].arrive-now 否 nowtime=p[i].arrive finish=nowtime+curr.treat 调用EnQueue函数 否 i

调用EnQueue函数