1 / 13
文档名称:

数据结构 算法与数据结构复习.ppt

格式:ppt   大小:315KB   页数:13页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构 算法与数据结构复习.ppt

上传人:相惜 2020/6/8 文件大小:315 KB

下载得到文件列表

数据结构 算法与数据结构复习.ppt

文档介绍

文档介绍::如果对循环队列采用设置运算标志的方式来区分队列的满和空的状态,试给出对应的各运算实现。在队列的类定义里加入一个标志位tag。queue::queue(){count=0;front=rear=0;tag=0;}boolqueue::empty()const{if(front==rear&&tag==0)returntrue;elsereturnfalse;}boolqueue::full()const{if(front==rear&&tag==1)returntrue;elsereturnfalse;}.error_codequeue::append(constelementtypex){if(full())returnoverflow;rear=(rear+1)%maxlen;data[rear]=x;count++;tag=1;ess;}error_codequeue::serve(){if(empty())returnunderflow;front=(front+1)%maxlen;count--;tag=0;ess;}.:如果采用带尾指针的单循环链表作为队列的存储结构,设计算法以实现队列的各运算。q1q2qn...队头元素队尾元素rearqueue::queue(){rear=newnode;rear->next=rear;count=0;}boolstack::empty()const{returnrear->next==rear;}error_codequeue::get_front(elementtype&x)const{if(empty())returnunderflow;x=rear->next->next->data;ess;}.error_codequeue::append(constelementtypex){node*s=newnode;s->data=x;s->next=rear->next;rear->next=s;rear=s;count++;ess;}error_codequeue::serve(){if(empty())returnunderflow;node*front=rear->next;node*u=front->next;front->next=u->next;deleteu;count--;if(front->next==NULL)rear=front;ess;}.:递增有序顺序表A、B分别表示一个集合,设计算法求解A=A-B,并分析其时间性能。data[ia]<data[ib]:A当前元素不在B中,ia++data[ia]>data[ib]:A当前元素可能在B中,ib++data[ia]=data[ib]:删除A当前元素,ib++;voidsubtraction(list&A,listB){ intia,ib,x,y; ia=ib=1; while(ia<=()&&ib<=()) { (ia,x);(ib,y); if(x<y)ia++; elseif(x>y)ib++; else {(ia);ib++;} }}时间性能:O(|A|+|B****题2:假设递增有序顺序表A、B分别表示一个集合,设计算法求解C=A∩B,并分析其时间性能。data[ia]<data[ib]:A当前元素不在B中,ia++data[ia]>data[ib]:A当前元素可能在B中,ib++data[ia]=data[ib]:将该元素插入C表中ia++,ib++,ic++voidintersection(listA,listB,list&C){ intia,ib,ic,x,y; ia=ib=ic=1; while(ia<=()&&ib<=()) { (ia,x);(ib,y); if(x<y)ia++; elseif(x>y)ib++; else {(ic,x);ia++;ib++;ic++;} }}时间性能:O(|A|+|B****题5-4:假设顺序表L中的元素按从小到大的次序排列,设计算法以删除表中的重复的元素,并要求时间尽可能少。对顺序表(1,1,2,2,2,3,4,5,5,5,6,6,7,7,8,8,8,9)模拟执行本算法,统计移动元素的次数。voidDeleteRepeat(list&L){ inti,j,x,y; if(()==0||()==1) {cout<<"不需删除";return;} i=1;