数据结构(计算机科学与技术)_第1页
数据结构(计算机科学与技术)_第2页
数据结构(计算机科学与技术)_第3页
数据结构(计算机科学与技术)_第4页
数据结构(计算机科学与技术)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构(计算机科学与技术本科)第一部分 客观题 一、单项选择(每题 2 分,共 20分)1、设 n 为正整数。则下面程序段的时间复杂度为 。k=0;for(i=1;i=n;i+)for(j=i;jn ext;q = head;while (p != NULL & p-data n ext;p = (ListNode *)malloc(sizeof(ListNode);p-data = x;p_n ext = q_n ext;q_n ext = p;2、假设将循环队列定义为:以整型域变量front和length分别指示循环队列中队 头元素位置和队列中元素个数,指针 elem指示存放队列元素的连

2、续空间的首地 址,写出相应的入队列和出队列的算法。1. typedef char QElemType;2. typedefstruct3. QElemType elemMAXQSIZE;4. intlength;5. intrear;6. CLenQueue;7. Status EnCQueue(CLenQueue &Q, QElemType x)8. 9. if (Q.length = MAXQSIZE)10. return ERROR;/ 循环队列满11. 12. if (MAXQSIZE - 1 != Q.rear)13. +Q.rear;14. Q.elemQ.rear = x;15.

3、 16. else /rear 指向循环队列的末尾时,作特殊处理使其构成循环17. Q.rear = 0;18. Q.elemQ.rear = x;19. 20. +Q.length; /当前元素个数+121. return OK;22. 23.23. Status DeCQueue(CLenQueue &Q, QElemType &x)24. 25. if (!Q.length)26. return ERROR;/ 循环队列空27. 28. if (Q.rear + 1 = Q.length)/当rear的下标大于对头指向的下标时29. x = Q.elemQ.rear + 1 - Q.le

4、ngth;30. 31. else /当rear的下标小于队头下标时32. x = Q.elemMAXQSIZE + Q.rear + 1 - Q.length;33. 34. -Q.length; /当前元素个数-135. return OK;36. 37. #include 38. #include 39. #define QUEUE_SIZE 1040. /*循环队列结构体*/41. typedef struct 42. int front; /* 队列头 */43. int rear; /* 队列尾 */44. int len gth;/* 记录队列元素个数*/45. int data

5、QUEUE_SIZE; /*存放队列元素值的数组*/欢迎下载4Q-le ngth+; /*队列元素个数加1 */47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.欢迎下载 CirQueue;/*初始化队列*/void ini tQueue(CirQueue *Q)Q_front = Q-rear = 0;Q-le ngth = 0;/*判断队列是否为空*/int QueueEmpty(CirQueue *Q)return Q-le ngth = 0;/*判断队列满*/int QueueFull(CirQueue

6、*Q)return Q-le ngth = QUEUE_SIZE;/*入队列*/void En Queue(CirQueue *Q, i nt data)if (QueueFull(Q)printf(队列已经满了 .n”);Q-dataQ-rear = data; /*将新元素插入队尾 */Q-rear = (Q-rea 叶1)%QUEUE_SIZE; /*将队尾加 1 */*岀队列*/int Dequeue(CirQueue *Q)int temp;if (QueueEmpty(Q)printf(队列已经为空!n”);temp = Q-dataQ-fro nt;Q-le ngth-; /*队

7、列元素个数减1 */Q-fro nt = (Q-fr on t+1)%QUEUE_SIZE; /*队列头加 1 */return temp;/*测试程序*/int mai n()CirQueue Q;intin put = 0; /*入队数据,由用户输入*/*初始化队列*/69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.欢迎下载ini tQueue(&Q);691. printf(请输入入队数据:n);92. /*入队操作*/93. while(!QueueFull(&Q)94. 95. sea nf(%dn, &in put);96. En Queue(&Q, i nput);97. 98. printf(岀队数据:n);99. /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论