当前位置: 首页 > news >正文

做专业的精品套图网站今天特大新闻最新消息

做专业的精品套图网站,今天特大新闻最新消息,新媒体运营论文,深圳企业排名文章目录 主要内容一.队列基础练习题1.用链式存储方式的队列进行删除操作时需要 ( D ).代码如下(示例): 2.若以1,2,3,4作为双端队列的输入序列,则既不能由输入受限的双端队列得到,又不能由输出受限的双端队列得到的输出序列是( C …

主要内容

  1. 队列基础练习题

一.队列基础练习题

1.用链式存储方式的队列进行删除操作时需要 ( D ).

A.仅修改头指针
B.仅修改尾指针
C.头尾指针都要修改
D.头尾指针可能都要修改

代码如下(示例):
队列用链式存储时,删除元素从表头删除,通常仅需修改头指针,
但若队列中仅有一个元素则尾指针也需要被修改,
当仅有一个元素时,删除后队列为空,需修改尾指针为 rear=front。

2.若以1,2,3,4作为双端队列的输入序列,则既不能由输入受限的双端队列得到,又不能由输出受限的双端队列得到的输出序列是( C )

A.1,2,3,4
B.4,1,3,2
C.4,2,3,1
D.4,2,1,3

代码如下(示例):
使用排除法。先看可由输入受限的双端队列产生的序列:
设右端输入受限,1,2,3,4 依次左入,则依次左出可得 4,3,2,1,排除 A;
右出、左出、右出、右出可得到4,1,3,2,排除 B;
再看可由输出受限的双端队列产生的序列:
设右端输出受限,1,2,3,4 依次左入、左入、右入、左入依次左出可得到 4,2,1,3,排除 D

3.现有队列Q与栈 S,初始时Q中的元素依次是 1,2.3,5,6(1在队头).S 为空。若仅允许下列3 种操作: (1) 出队并输出出队元素;(2)出队并将出队元素入栈:(3)出栈并输出出栈元素,则不能得到的输出序列是 ( C )。

A.1,2,5,6,4,3
B.2,3,4,5,6,1
C.3,4,5,6,1,2
D.6,5,4,3,2,1

代码如下(示例):
A 的操作顺序为11221133。
B 的操作顺序为2111113。
D 的操作顺序为22222133333。
对于 C: 首先输出3,说明 12 必须先依次入栈,而此后2肯定比1先输出,
因此无法得到 1,2的输出顺序

4.Q是一个队列,S 是一个空栈,实现将队列中的元素逆置的算法

代码如下(示例):
本题主要考查对队列和栈的特性与操作的理解。
由于对队列的一系列操作不可能将其中的元素逆置,而栈可以将入栈的元素逆序提取出来,
因此我们可以让队列中的元素逐个地出队列,入栈;全部入栈后再逐个出栈,入队列。void Inverser(Stack &S,Queue &Q){
//本算法实现将队列中的元素逆置while(!QueueEmpty(Q)){x=DeQueue(O);  //队列中全部元素依次出队Push(S,x);  //元素依次入栈}while(!StackEmpty(S)){PoP(S,x);  //栈中全部元素依次出栈EnQueue(Q,x);  //再入队}
}

5.利用两个栈 S1,S2来模拟一个队列,已知栈的4个运算定义如下:

Push(S,x);  //元素x入栈s
Pop(S,x);  //s出栈并将出栈的值赋给 x
StackEmpty(s);  //判断栈是否为空
StackOverflow(S);  //判断栈是否满

如何利用栈的运算来实现该队列的 3 个运算(形参由读者根据要求自己设计)?

Enqueue;  //将元素x入队
Dequeue;  //出队,并将出队元素存储在x中
QueueEmpty;  //判断队列是否
代码如下(示例):
利用两个栈S1和 s2来模拟一个队列,当需要向队列中插入一个元素时,
用S1 来存放已输入的元素,即 S1 执行入栈操作。
当需要出队时,则对 S2 执行出操作。
由于从栈中取出元素的顺序是原顺序的逆序,所以必须先将 S1 中的所有元素全部出栈并入栈到 S2 中,
再在 S2 中执行出栈操作,即可实现出队操作,
而在执行此操作前必须判断 S2 是否为空,否则会导致顺序混乱。当栈S1和s2都为空时队列为空。总结如下:
1)对S2的出找操作用做出队,若s2为空,则先将是s1中的所有元素送入s2
2)对 s1的入操作用作入队,若 S1 满,必须先保证s2为空,才能将s1中的元素全部插入S2中。

入队算法

入队算法int EnQueue(Stack Sl,Stack &S2,ElemType e){if(!stackOverflow(s1)){Push(S1,e);return 1;}if(StackOverflow(S1)&!StackEmpty(s2)){printf("队列满");return 0;}if(StackOveflow(S1)&sStackEmpty(S2)){while(!stackEmpty(S1)){Pop(S1.x);Push(S2,x);}}Push(s1,e);return 1;
}

出队算法

void DeQueue(Stack &S1,Stack &S2,ElemType &x){if(!StackEmpty(s2)){Pop(S2,x);}else if(StackEmpty(S1)){printf("队列为空");}else{while(!stackEmpty(S1)){Pop(S1,x);Push(S2,x);}Pop(S2,x);}
}

判断队列为空的算法:

int QueueEmpty(Stack Sl,Stack s2){if(StackEmpty(s1)&&StackEmpty(S2))return 1;elsereturn 0;
}

总结

以上是今天要讲的内容,练习了线性表–队列的相关习题。

http://www.zhongyajixie.com/news/677.html

相关文章:

  • 威海高区建设局官方网站国际新闻报道
  • 这几年做哪个网站致富对seo的理解
  • seo网站地图手机版怎么用百度快照
  • 合肥房产备案网上查询seo外链建设的方法
  • 给酒吧做网站湖南关键词优化品牌价格
  • wordpress 获取url快速优化官网
  • 微网站百度网盘下载慢怎么解决
  • 阿里巴巴网站服务器成本上海seo推广
  • 师大暨大网站建设便宜的seo官网优化
  • 找制作网站公司博客程序seo
  • 灰色行业老域名做网站不收录广告平台
  • 建设银行保定分行网站长沙网站seo源头厂家
  • 绵阳的网站建设成品网站货源1
  • 广州做app软件开发的公司真人seo点击平台
  • 茂名做网站的公司搜一搜搜索
  • 郑州易站通网站公司公司推广文案
  • 廊坊做网站的电话甘肃搜索引擎网络优化
  • 做公关用的网站短视频seo推广
  • 企业网站建设 urkeji免费私人网站建设软件
  • 武汉网站网站建设快速排名点击工具
  • 营销型网站建设多少钱注册域名费用一般多少钱
  • 网站建设能赚很多钱ks免费刷粉网站推广马上刷
  • 建筑施工合同模板优化合作平台
  • 营销团队外包如何点击优化神马关键词排名
  • 苏州吴中区做网站的提高搜索引擎检索效果的方法
  • 如何帮客户做网站抖音网络营销案例分析
  • 网站开发,自定义首页显示百度推广运营这个工作好做吗
  • 专业网站优化哪家好一件代发48个货源网站
  • 专做企业网站的站长工具网站备案查询
  • 做源码演示的网站小程序开发