二维码

数据结构-栈和队列练习题 - 数据结构 - 机器学习

1208 人阅读 | 时间:2021年01月15日 01:09
数据结构-栈和队列练习题 - 数据结构 - 机器学习 #daohang ul li t,.reed .riqi,a.shangg,a.xiatt,a.shangg:hover,a.xiatt:hover,a.shang,a.xiat,a.shang:hover,a.xiat:hover,.reed-pinglun-anniu,span.now-page,#daohangs-around,#caidan-tubiao,#daohangs,#daohangs li,#btnPost{background-color:#D10B04;} .dinglanyou1 h3{border-bottom:3px solid #D10B04;} #dibuer{border-top:2px solid #D10B04;}.cebianlan .rongqi h3{border-bottom:1px solid #D10B04;} #edtSearch{border:1px solid #D10B04;} #daohang .zuo ul li{border-right:1px solid #;} #daohang ul li t a{border-top:1px solid #;border-right:1px solid #D10B04;} #daohang ul li t a:hover{border-right:1px solid #;} #daohang .you ul li a:hover,#daohang .zuo ul li a:hover,.reed-pinglun-anniu:hover{background-color:#;} a:hover,.reed h6 a:hover,#dibuer a:hover,.reed .riqiding,.cebianlan .rongqi li a:hover,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.shu a,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.huifuliuyan a:hover,.reed-biaoti h6 span{color:#D10B04;} .reed .kan a{color:#0A0AF5;}.reed .kan a:hover{color:#D10101;} @media screen and (max-width:1492px){a.shang,a.xiat{background:none;} a.xiat:hover,a.shang:hover{background-color:#f9f9f9;background-image:none;text-decoration:none;}} var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?2d748c9763cfc72fb7d1ccab29f0770d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f6d451f3f1be23f3abf240c64c469c1b"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();

当前位置:首页 » 数据结构练习题 » 正文

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646201", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646162", container: s }); })();

数据结构-栈和队列练习题

2149 人参与  2018年09月10日 21:42  分类 : 数据结构练习题  评论

1. 判断题

l)栈是运算受限制的线性表。 

2)在栈空的情况下,不能作出栈操作,否则产生溢出。 

3)栈一定是顺序存储的线性结构。

参考答案: (1) √     (2)√    (3)×   

2. 选择题

(l)设入栈序列是 1 2 、 … 、 n ,入栈过程中不允许中途出栈,则第 i 个输出的元素是 (   )。

A.不确定             B.i                  C. n - i              D. n - i + 1

(2)铁路调度用“栈”,假设进栈车厢编队序列为“ ABC " (进栈过程中可以出栈),出栈则有许多编队序列,以下不可能出现的序列是(  )。

A. " ABC "             B. " CBA "            C. " BAC "          D. " CAB "

(3)当栈中当前元素为 n 个,此时进行进栈运算时发生上溢,则该栈的最大、容量为(  )。

A. n/2                 B. n - 1               C. n                D. n + 1

(4)在栈中存取数据的原则是(  )。

A.先进先出           B.后进先出         C.后进后出        D.随意进出

 (5)插入和删除只能在一端进行的线性表,称为(  )。

A.队列               B.循环队列         C.栈              D. 循环栈

 (6栈结构通常采用的两种存储结构是(   

A线性存储结构和链式存储结构       B散列方式和索引方式    

C链式存储结构和数组               D.线性存储结构和非线性存储结构

 参考答案:D     D     C      B     C     C    

3. 简述利用两个栈模拟一个队列的入队、出对、判断队空等运算。

答:利用两个栈模拟一个队列的运算的基本思想是:

用一个栈S1作为输入栈,而另一个栈S2作为输出栈。

当入队时,总是将数据加入到作为输入的栈(即S1)中;

在输出时,如果输出栈S2已空,则从输入栈S1将以输入到输入栈中的数据输入到输出栈S2中,然后由输出栈S2输出数据,如果输出栈S2不为空,则就应由输出栈S2直接输出数据元素。

显然,当S1S2均为空时,表示队列为空

4. 若已知一个栈的入栈序列是1234n ,其输出序列是P1P2P3Pn,若P1=n,则Pi为多少?

P1=n,即n是最先出栈的,根据栈的原理,n必定是最后入栈的,那么输入顺序必定是1234n,则出栈的序列是n 4321,所以Pi = n-i+1

5. 对于一个栈,给出输入项ABC。如果输入项序列由ABC组成,试给出全部可能的输出序列。

本题利用栈的后进先出的特点,有如下几种情况:

AABBCC出产生输出序列ABC

AABCCB出产生输出序列ACB

ABBACC出产生输出序列BAC

ABBCCA出产生输出序列BCA

ABCCBA出产生输出序列CBA

不可能产生输出序列CBA

6. 利用栈的基本操作,写一个将栈S中所有结点均删除的算法void ClearStack (SeqStack*S),并说明S为何要作为指针参数?

要将栈S中所有结点均删除,可以利用栈的基本操作Pop(出栈)运算来实现,从栈顶元素开始,不断执行出栈运算,直到栈为空为止。实现本题功能的算法如下:

    voidClearStack (SeqStack*S)    
    {
        while (!StackEmpty (*S) )Pop (*S );
    }

说明:根据C语言的特征,函数形参为指针变量,可以将该形参在函数体内所修改的值返回给实参。根据题意,栈S在执行完该函数后,其结点已全部删除,内容已发生修改,故,S要作为指针参数。 

7. 利用栈的基本操作,写一个返回栈中结点个数的算法int  StackSize (SeqStackS),并说明S为何不用作为指针参数?

根据题意,设一变量count来统计栈中结点的个数,从栈顶元素出发,循环执行出栈运算,直到栈空。实现本题功能的函数如下:

    intStackSize (SeqStackS)    
    {
    intcount=0;
    while (!StackEmpty (S)) 
    {
    conut++;
    Pop (s);
    }
    }

说明:依据题意,该算法只需统计栈中结点个数,执行完函数后不能修改实参栈的内容。所以,在该函数中,S不能用作指针参数。

8. 如果用一个循环数组qu[0m0-1]表示队列时,该队列只有一个头指针front,不设队尾指针rear,而改置计数器count用以记录队列中结点的个数。

1)编写实现队列的五个基本运算;

2)队列中能容纳元素的最多个数还是m0-1吗?

解:

1)依题意,有如下条件:

队列为空:count==0front==1

队列为满:count==m0

队列尾的第一个元素位置==front+count% m0

队列首的第一个元素位置==front+1% m0

队列类型定义如下:

typedef int qu[m0]

由此得到如下对应上述基本运算的5个函数如下:

    /* m0定义为全局变量 */    
    void makenull(front,count) /*使队列q为空*/
    int front,count;
    {   front=1;
    count=0;
    }
    int empty(count) /*判定队列q是否为空*/
    int count;
    {   if(count==0)return(1);
    else return(0);
    }
    void pop(q,front,count,x) /*取队列头元素给x*/
    qu q;
    int front,count;
    ElemType *x;
    {   if(count==0)printf(”队列下溢出\n”);
    else
    {   front=(front+1)% m0;
    *x=q[front];
    }
    }
    void enqueue(q,x,front,count)/*将元素x入队列*/
    qu q;
    int front,count;
    ElemType x;
    {   int place;
    if(count==0)printf(”队列上溢出\n”);
    else
    {   count++;
    place=(front+count)% m0;
    }
    }
    void dequeue(q,front,count)/*删除队列头元素*/
    qu q;
    int front,count;
    {  if(count==0)printf(”队列下溢出\n”);
    else
    {  front=(front+1)% m0;
    count--;
    }
    }

2)队列中可容纳的最多元素个数为m0个。

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=352

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdPic":"","bdStyle":"0","bdSize":"16"},"share":{},"image":{"viewList":["qzone","tsina","tqq","renren","weixin"],"viewText":"分享到:","viewSize":"16"},"selectShare":{"bdContainerClass":null,"bdSelectMiniList":["qzone","tsina","tqq","renren","weixin"]}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
数据结构  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646186", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646175", container: s }); })();
搜索

网站分类

标签列表

最近发表

    (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https'){ bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else{ bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!

jQuery(document).ready(function($){ /* prepend menu icon */ $('#daohangs-around').prepend('
'); /* toggle nav */ $("#caidan-tubiao").on("click", function(){ $("#daohangs").slideToggle(); $(this).toggleClass("active"); }); });

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
关闭广告
关闭广告
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×