欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构习题集(C语言版严蔚敏)第一二三章.doc

    • 资源ID:33585058       资源大小:241.50KB        全文页数:13页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构习题集(C语言版严蔚敏)第一二三章.doc

    如有侵权,请联系网站删除,仅供学习与交流数据结构习题集(C语言版严蔚敏)第一二三章【精品文档】第 13 页第1章 绪论1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。1.3 设有数据结构(D,R),其中试按图论中图的画法惯例画出其逻辑结构图。1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。1.5 试画出与下列程序段等价的框图。(1) product=1; i=1; while(i<=n) product *= i; i+;(2) i=0; do i+; while(i!=n) && (ai!=x);(3) switch case x<y: z=y-x; break; case x=y: z=abs(x*y); break; default: z=(x-y)/abs(x)*abs(y);1.6 在程序设计中,常用下列三种不同的出错处理方式:(1) 用exit语句终止执行并报告错误;(2) 以函数的返回值区别正确返回或错误返回;(3) 设置一个整型变量的函数参数以区别正确返回或某种错误返回。试讨论这三种方法各自的优缺点。1.7 在程序设计中,可采用下列三种方法实现输出和输入:(1) 通过scanf和printf语句;(2) 通过函数的参数显式传递;(3) 通过全局变量隐式传递。试讨论这三种方法的优缺点。1.8 设n为正整数。试确定下列各程序段中前置以记号的语句的频度:(1) i=1; k=0; while(i<=n-1) k += 10*i; i+;(2) i=1; k=0; do k += 10*i; i+; while(i<=n-1);(3) i=1; k=0; while (i<=n-1) i+; k += 10*i;(4) k=0; for(i=1; i<=n; i+) for(j=i; j<=n; j+) k+;(5) for(i=1; i<=n; i+) for(j=1; j<=i; j+) for(k=1; k<=j; k+) x += delta;(6) i=1; j=0; while(i+j<=n) if(i>j) j+; else i+;(7) x=n; y=0; / n是不小于1的常数 while(x>=(y+1)*(y+1) y+;(8) x=91; y=100; while(y>0) if(x>100) x -= 10; y-; else x+;1.9 假设n为2的乘幂,并且n>2,试求下列算法的时间复杂度及变量count的值(以n的函数形式表示)。int Time(int n) count = 0;x=2;while(x<n/2) x *= 2;count+;return count;1.11 已知有实现同一功能的两个算法,其时间复杂度分别为和,假设现实计算机可连续运算的时间为秒(100多天),又每秒可执行基本操作(根据这些操作来估算算法时间复杂度)次。试问在此条件下,这两个算法可解问题的规模(即n值的范围)各为多少?哪个算法更适宜?请说明理由。1.12 设有以下三个函数:请判断以下断言正确与否:(1) f(n)是O(g(n)(2) h(n)是O(f(n)(3) g(n)是O(h(n)(4) h(n)是O(n3.5)(5) h(n)是O(nlogn)1.13 试设定若干n值,比较两函数和的增长趋势,并确定n在什么范围内,函数的值大于的值。1.14 判断下列各对函数和,当时,哪个函数增长更快?(1) ,(2) ,(3) ,(4) ,1.15 试用数学归纳法证明:(1) (2) (3) (4) 1.16 试写一算法,自大至小依次输出顺序读入的三个整数X,Y和Z的值1.17 已知k阶斐波那契序列的定义为 试编写求k阶斐波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。1.18 假设有A,B,C,D,E五个高等院校进行田径对抗赛,各院校的单项成绩均已存入计算机,并构成一张表,表中每一行的形式为项目名称性别校名成绩得分编写算法,处理上述表格,以统计各院校的男、女总分和团体总分,并输出。1.19 试编写算法,计算的值并存入数组a0.arrsize-1的第i-1个分量中(i=1,2,n)。假设计算机中允许的整数最大值为maxint,则当n>arrsize或对某个,使时,应按出错处理。注意选择你认为较好的出错处理方法。1.20 试编写算法求一元多项式的值的值,并确定算法中每一语句的执行次数和整个算法的时间复杂度。注意选择你认为较好的输入和输出方法。本题的输入为,和,输出为。第2章 线性表2.1 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。2.2 填空题。(1) 在顺序表中插入或删除一个元素,需要平均移动 元素,具体移动的元素个数与 有关。 (2) 顺序表中逻辑上相邻的元素的物理位置 紧邻。单链表中逻辑上相邻的元素的物理位置 紧邻。 (3) 在单链表中,除了首元结点外,任一结点的存储位置由 指示。 (4) 在单链表中设置头结点的作用是 。2.3 在什么情况下用顺序表比链表好?2.4 对以下单链表分别执行下列各程序段,并画出结果示意图。2.5 画出执行下列各行语句后各指针及链表的示意图。L=(LinkList)malloc(sizeof(LNode);P=L;for(i=1;i<=4;i+)P->next=(LinkList)malloc(sizeof(LNode);P=P->next;P->data=i*2-1;P->next=NULL;for(i=4;i>=1;i-) Ins_LinkList(L,i+1,i*2);for(i=1;i<=3;i+) Del_LinkList(L,i);2.6 已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。a. 在P结点后插入S结点的语句序列是_。b. 在P结点前插入S结点的语句序列是_。c. 在表首插入S结点的语句序列是_。d. 在表尾插入S结点的语句序列是_。(1) P->next=S;(2) P->next=P->next->next;(3) P->next=S->next;(4) S->next=P->next;(5) S->next=L;(6) S->next=NULL;(7) Q=P;(8) while(P->next!=Q) P=P->next;(9) while(P->next!=NULL) P=P->next;(10) P=Q;(11) P=L;(12) L=S;(13) L=P;2.7 已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。 a. 删除P结点的直接后继结点的语句序列是_。 b. 删除P结点的直接前驱结点的语句序列是_。 c. 删除P结点的语句序列是_。 d. 删除首元结点的语句序列是_。e. 删除尾元结点的语句序列是_。(1) P=P->next;(2) P->next=P;(3) P->next=P->next->next;(4) P=P->next->next;(5) while(P!=NULL) P=P->next;(6) while(Q->next!=NULL) P=Q; Q=Q->next; (7) while(P->next!=Q) P=P->next;(8) while(P->next->next!=Q) P=P->next;(9) while(P->next->next!=NULL) P=P->next;(10) Q=P;(11) Q=P->next;(12) P=L;(13) L=L->next;(14) free(Q);2.8 已知P结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句序列。a. 在P结点后插入S结点的语句序列是_。b. 在P结点前插入S结点的语句序列是_。c. 删除P结点的直接后继结点的语句序列是_。d. 删除P结点的直接前驱结点的语句序列是_。e. 删除P结点的语句序列是_。(1) P->next=P->next->next;(2) P->priou=P->priou->priou;(3) P->next=S;(4) P->priou=S;(5) S->next=P;(6) S->priou=P;(7) S->next=P->next;(8) S->priou=P->priou;(9) P->priou->next=P->next;(10) P->priou->next=P;(11) P->next->priou=P;(12) P->next->priou=S;(13) P->priou->next=S;(14) P->next->priou=P->priou;(15) Q=P->next;(16) Q=P->priou;(17) free(P);(18) free(Q);2.9 简述以下算法的功能。(1) Status A(LinkedList L) /L是无表头结点的单链表if(L && L->next) Q=L;L=L->next;P=L;while(P->next) P=P->next;P->next=Q;Q->next=NULL;return OK;(2) void BB(LNode *s, LNode *q) p=s;while(p->next!=q) p=p->next;p->next =s;void AA(LNode *pa, LNode *pb) /pa和pb分别指向单循环链表中的两个结点BB(pa,pb);BB(pb,pa);2.10 指出以下算法中的错误和低效之处,并将它改写为一个既正确又高效的算法。Status DeleteK(SqList &a,int i,int k)/本过程从顺序存储结构的线性表a中删除第i个元素起的k个元素if(i<1|k<0|i+k>a.length) return INFEASIBLE;/参数不合法else for(count=1;count<k;count+)/删除第一个元素for(j=a.length;j>=i+1;j-) a.elemj-i=a.elemj;a.length-;return OK;2.11 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。解:Status InsertOrderList(SqList &va,ElemType x)/在非递减的顺序表va中插入元素x并使其仍成为顺序表的算法int i;if(va.length=va.listsize)return(OVERFLOW);for(i=va.length;i>0,x<va.elemi-1;i-)va.elemi=va.elemi-1;va.elemi=x;va.length+;return OK;2.12 设和均为顺序表,和分别为和中除去最大共同前缀后的子表。若空表,则;若=空表,而空表,或者两者均不为空表,且的首元小于的首元,则;否则。试写一个比较,大小的算法。2.13 试写一算法在带头结点的单链表结构上实现线性表操作Locate(L,x);2.14 试写一算法在带头结点的单链表结构上实现线性表操作Length(L)。2.15 已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。试写一算法将这两个链表连接在一起,假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。请分析你的算法的时间复杂度。2.16 已知指针la和lb分别指向两个无头结点单链表中的首元结点。下列算法是从表la中删除自第i个元素起共len个元素后,将它们插入到表lb中第i个元素之前。试问此算法是否正确?若有错,请改正之。Status DeleteAndInsertSub(LinkedList la,LinkedList lb,int i,int j,int len)if(i<0|j<0|len<0) return INFEASIBLE;p=la;k=1;while(k<i)p=p->next;k+;q=p;while(k<=len)q=q->next;k+;s=lb; k=1;while(k<j)s=s->next;k+;s->next=p; q->next=s->next;return OK;2.17 试写一算法,在无头结点的动态单链表上实现线性表操作Insert(L,i,b),并和在带头结点的动态单链表上实现相同操作的算法进行比较。2.18试写一算法,实现线性表操作Delete(L,i),并和在带头结点的动态单链表上实现相同操作的算法进行比较。2.19 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一高效的算法,删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素),同时释放被删结点空间,并分析你的算法的时间复杂度(注意,mink和maxk是给定的两个参变量,它们的值可以和表中的元素相同,也可以不同)。2.20 同2.19题条件,试写一高效的算法,删除表中所有值相同的多余元素(使得操作后的线性表中所有元素的值均不相同),同时释放被删结点空间,并分析你的算法的时间复杂度。2.21 试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表逆置为。2.22 试写一算法,对单链表实现就地逆置。2.23 设线性表,试写一个按下列规则合并A,B为线性表C的算法,即使得当时;当时。线性表A,B和C均以单链表作存储结构,且C表利用A表和B表中的结点空间构成。注意:单链表的长度值m和n均未显式存储。2.24 假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。2.25 假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合(即同一表中的元素值各不相同),现要求另辟空间构成一个线性表C,其元素为A和B中元素的交集,且表C中的元素有依值递增有序排列。试对顺序表编写求C的算法。2.26 要求同2.25题。试对单链表编写求C的算法。2.27 对2.25题的条件作以下两点修改,对顺序表重新编写求得表C的算法。(1) 假设在同一表(A或B)中可能存在值相同的元素,但要求新生成的表C中的元素值各不相同;(2) 利用A表空间存放表C。2.28 对2.25题的条件作以下两点修改,对单链表重新编写求得表C的算法。(1) 假设在同一表(A或B)中可能存在值相同的元素,但要求新生成的表C中的元素值各不相同;(2) 利用原表(A表或B表)中的结点构成表C,并释放A表中的无用结点空间。2.29 已知A,B和C为三个递增有序的线性表,现要求对A表作如下操作:删去那些既在B表中出现又在C表中出现的元素。试对顺序表编写实现上述操作的算法,并分析你的算法的时间复杂度(注意:题中没有特别指明同一表中的元素值各不相同)。2.30 要求同2.29题。试对单链表编写算法,请释放A表中的无用结点空间。2.31 假设某个单向循环链表的长度大于1,且表中既无头结点也无头指针。已知s为指向链表中某个结点的指针,试编写算法在链表中删除指针s所指结点的前驱结点。2.32 已知有一个单向循环链表,其每个结点中含三个域:pre,data和next,其中data为数据域,next为指向后继结点的指针域,pre也为指针域,但它的值为空,试编写算法将此单向循环链表改为双向循环链表,即使pre成为指向前驱结点的指针域。2.33 已知由一个线性链表表示的线性表中含有三类字符的数据元素(如:字母字符、数字字符和其他字符),试编写算法将该线性表分割为三个循环链表,其中每个循环链表表示的线性表中均只含一类字符。2.34 假设在算法描述语言中引入指针的二元运算“异或”,若a和b为指针,则ab的运算结果仍为原指针类型,且a(ab)=(aa)b=b(ab)b=a(bb)=a则可利用一个指针域来实现双向链表L。链表L中的每个结点只含两个域:data域和LRPtr域,其中LRPtr域存放该结点的左邻与右邻结点指针(不存在时为NULL)的异或。若设指针L.Left指向链表中的最左结点,L.Right指向链表中的最右结点,则可实现从左向右或从右向左遍历此双向链表的操作。试写一算法按任一方向依次输出链表中各元素的值。2.35 采用2.34题所述的存储结构,写出在第i个结点之前插入一个结点的算法。2.36 采用2.34题所述的存储结构,写出删除第i个结点的算法。2.37 设以带头结点的双向循环链表表示的线性表。试写一时间复杂度O(n)的算法,将L改造为。2.38 设有一个双向循环链表,每个结点中除有pre,data和next三个域外,还增设了一个访问频度域freq。在链表被起用之前,频度域freq的值均初始化为零,而每当对链表进行一次Locate(L,x)的操作后,被访问的结点(即元素值等于x的结点)中的频度域freq的值便增1,同时调整链表中结点之间的次序,使其按访问频度非递增的次序顺序排列,以便始终保持被频繁访问的结点总是靠近表头结点。试编写符合上述要求的Locate操作的算法。2.39 已知稀疏多项式,其中,。试采用存储量同多项式项数m成正比的顺序存储结构,编写求的算法(为给定值),并分析你的算法的时间复杂度。2.40 采用2.39题给定的条件和存储结构,编写求的算法,将结果多项式存放在新辟的空间中,并分析你的算法的时间复杂度。2.41 试以循环链表作稀疏多项式的存储结构,编写求其导函数的方法,要求利用原多项式中的结点空间存放其导函数多项式,同时释放所有无用结点。2.42 试编写算法,将一个用循环链表表示的稀疏多项式分解成两个多项式,使这两个多项式中各自仅含奇次项或偶次项,并要求利用原链表中的结点空间构成这两个链表。第3章 栈和队列3.1 若按教科书3.1.1节中图3.1(b)所示铁道进行车厢调度(注意:两侧铁道均为单向行驶道),则请回答:(1) 如果进站的车厢序列为123,则可能得到的出站车厢序列是什么?(2) 如果进站的车厢序列为123456,则能否得到435612和135426的出站序列,并请说明为什么不能得到或者如何得到(即写出以 S表示进栈和以 X表示出栈的栈操作序列)。3.2 简述栈和线性表的差别。3.3 写出下列程序段的输出结果(栈的元素类型SElemType为char)。void main()Stack S;char x,y;InitStack(S);x= c; y= k;Push(S,x);Push(S, a);Push(S,y);Pop(S,x);Push(S, t);Push(S,x);Pop(S,x);Push(S, s);while(!StackEmpty(S) Pop(S,y); printf(y); printf(x);3.4 简述以下算法的功能(栈的元素类型SElemType为int)。(1) status algo1(Stack S)int i,n,A255;n=0;while(!StackEmpty(S) n+; Pop(S,An); for(i=1;i<=n;i+) Push(S,Ai);(2) status algo2(Stack S,int e)Stack T; int d;InitStack(T);while(!StackEmpty(S)Pop(S,d);if(d!=e) Push(T,d);while(!StackEmpty(T)Pop(T,d);Push(S,d);3.5 假设以S和X分别表示入栈和出栈的操作,则初态和终态均为空栈的入栈和出栈的操作序列可以表示为仅由S和X组成的序列。称可以操作的序列为合法序列(例如,SXSX为合法序列,SXXS为非法序列)。试给出区分给定序列为合法序列或非法序列的一般准则,并证明:两个不同的合法(栈操作)序列(对同一输入序列)不可能得到相同的输出元素(注意:在此指的是元素实体,而不是值)序列。3.6 试证明:若借助栈由输入序列12n得到的输出序列为(它是输入序列的一个排列),则在输出序列中不可能出现这样的情形:存在着i<j<k使<<。3.7 按照四则运算加、减、乘、除和幂运算()优先关系的惯例,并仿照教科书3.2节例3-2的格式,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:A-B×C/D+EF3.8 试推导求解n阶梵塔问题至少要执行的move操作的次数。3.9 试将下列递推过程改写为递归过程。void ditui(int n)int i;i = n;while(i>1)cout<<i-;3.10 试将下列递归过程改写为非递归过程。void test(int &sum)int x;cin>>x;if(x=0) sum=0;elsetest(sum);sum+=x;cout<<sum;3.11 简述队列和堆栈这两种数据类型的相同点和差异处。3.12 写出以下程序段的输出结果(队列中的元素类型QElemType为char)。void main()Queue Q;InitQueue(Q);char x= e, y= c;EnQueue(Q, h);EnQueue(Q, r);EnQueue(Q, y);DeQueue(Q, x);EnQueue(Q, x);DeQueue(Q, x);EnQueue(Q, a);While(!QueueEmpty(Q)DeQueue(Q,y);cout<<y;cout<<x;3.13 简述以下算法的功能(栈和队列的元素类型均为int)。 void algo3(Queue &Q)Stack S;int d;InitStack(S);while(!QueueEmpty(Q)DeQueue(Q, d);Push(S, d);while(!StackEmpty(S)Pop(S, d);EnQueue(Q, d);3.14 若以1234作为双端队列的输入序列,试分别求出满足以下条件的输出序列: (1) 能由输入受限的双端队列得到,但不能由输出受限的双端队列得到的输出序列。 (2) 能由输出受限的双端队列得到,但不能由输入受限的双端队列得到的输出序列。 (3) 既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列。3.15 假设以顺序存储结构实现一个双向栈,即在一维数组的存储空间中存在着两个栈,它们的栈底分别设在数组的两个端点。试编写实现这个双向栈tws的三个操作:初始化inistack(tws)、入栈push(tws,i,x)和出栈pop(tws,i)的算法,其中i为0或1,用以分别指示设在数组两端的两个栈,并讨论按过程(正/误状态变量可设为变参)或函数设计这些操作算法各有什么有缺点。3.16 假设如题3.1所属火车调度站的入口处有n节硬席或软席车厢(分别以H和S表示)等待调度,试编写算法,输出对这n节车厢进行调度的操作(即入栈或出栈操作)序列,以使所有的软席车厢都被调整到硬席车厢之前。3.17 试写一个算法,识别一次读入的一个以为结束符的字符序列是否为形如序列1&序列2模式的字符序列。其中序列1和序列2中都不含字符&,且序列2是序列1的逆序列。例如,a+b&b+a是属该模式的字符序列,而1+3&3-1则不是。3.18 试写一个判别表达式中开、闭括号是否配对出现的算法。3.20 假设以二维数组g(1m, 1n)表示一个图像区域,gi,j表示该区域中点(i,j)所具颜色,其值为从0到k的整数。编写算法置换点(i0,j0)所在区域的颜色。约定和(i0,j0)同色的上、下、左、右的邻接点为同色区域的点。3.21 假设表达式有单字母变量和双目四则运算符构成。试写一个算法,将一个通常书写形式且书写正确的表达式转换为逆波兰表达式。3.22 如题3.21的假设条件,试写一个算法,对以逆波兰式表示的表达式求值。3.23 如题3.21的假设条件,试写一个算法,判断给定的非空后缀表达式是否为正确的逆波兰表达式,如果是,则将它转化为波兰式。3.24 试编写如下定义的递归函数的递归算法,并根据算法画出求g(5,2)时栈的变化过程。3.25 试写出求递归函数F(n)的递归算法,并消除递归:3.26 求解平方根的迭代函数定义如下:其中,p是A的近似平方根,e是结果允许误差。试写出相应的递归算法,并消除递归。3.27 已知Ackerman函数的定义如下: (1) 写出递归算法; (2) 写出非递归算法; (3) 根据非递归算法,画出求akm(2,1)时栈的变化过程。3.28 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的队列初始化、入队列何处队列的算法。3.29 如果希望循环队列中的元素都能得到利用,则需设置一个标志域tag,并以tag的值为0和1来区分,尾指针和头指针值相同时的队列状态是“空”还是“满”。试编写与此结构相应的入队列和出队列的算法,并从时间和空间角度讨论设标志和不设标志这两种方法的使用范围(如当循环队列容量较小而队列中每个元素占的空间较多时,哪一种方法较好)。3.30 假设将循环队列定义为:以域变量rear和length分别指示循环队列中队尾元素的位置和内含元素的个数。试给出此循环队列的队满条件,并写出相应的入队列和出队列的算法(在出队列的算法中要返回队头元素)。3.31 假设称正读和反读都相同的字符序列为“回文”,例如,abba和abcba是回文,abcde和ababab则不是回文。试写一个算法判别读入的一个以为结束符的字符序列是否是“回文”。3.32 试利用循环队列编写求k阶菲波那契序列中前n+1项的算法,要求满足:而,其中max为某个约定的常数。(注意:本题所用循环队列的容量仅为k,则在算法执行结束时,留在循环队列中的元素应是所求k阶菲波那契序列中的最后k项)3.33 在顺序存储结构上实现输出受限的双端循环队列的入列和出列(只允许队头出列)算法。设每个元素表示一个待处理的作业,元素值表示作业的预计时间。入队列采取简化的短作业优先原则,若一个新提交的作业的预计执行时间小于队头和队尾作业的平均时间,则插入在队头,否则插入在队尾。3.34 假设在如教科书3.4.1节中图3.9所示的铁道转轨网的输入端有n节车厢:硬座、硬卧和软卧(分别以P,H和S表示)等待调度,要求这三种车厢在输出端铁道上的排列次序为:硬座在前,软卧在中,硬卧在后。试利用输出受限的双端队列对这n节车厢进行调度,编写算法输出调度的操作序列:分别以字符E和D表示对双端队列的头端进行入队列和出队列的操作;以字符A表示对双端队列的尾端进行入队列的操作。

    注意事项

    本文(数据结构习题集(C语言版严蔚敏)第一二三章.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开