C语言:栈与队列

1. 栈的优缺点。

答:优点:由于栈只允许栈顶进出元素,栈的顺序存储结构很方便,不存在线性表插入和删除时需要移动元素的问题。

缺点:需要先确定数组存储空间的大小,万一不够用需要编程手段来扩展数组的容量。

2.两个栈共享空间时,栈满的判断?

答:top1 + 1 = top2;

3.链栈与单链表的关系。

答:链栈的栈顶放在链表的头部,此时,单链表的头结点也就没有了意义,通常不需要头结点。

对于链栈来说,通常 存在栈满的情况,除非内存没有使用空间了。

4.对比链栈与顺序栈的应用。

答:顺序栈:要事先定好一个固定长度,优势在于存取时定位方便,可以在变化范围可控时使用;

链栈:要求每个元素都有指针域,长度是无限的,可以在元素范围不可料时使用。

5.使用递归函数时要注意些什么?

答:每个递归定义必须至少有一个条件,满足时递归不再进行,既不再引用自身而是返回值结束。

6.栈在四则运算方面的应用。

答:两步;1.将中缀表达式转换成后缀表达式(栈用来进出运算的符号);

                 2.将后缀表达式进行运算得出结果(栈用来进出运算的数字)。

7.循环队列满队 的条件以及队列长度的计算通用公式。

答:判断条件:(rear + 1)%QueueSize == front;

长度计算公式:(rear - front + QueueSize)% QueueSize

8.队列链式存储出队6步走。

答:1.判断队列是否为空;

       2.将要删除的队列结点赋给p;

       3.将要删除的队列结点的值赋给e;

       4.将原队头结点后继赋给头结点后继;

       5.判断队尾与队头是否重合,若是就将rear指向头结点;

       6.释放p.

9.循环队列与链队列的比较。

答:从时间上,其实它们的第本操作都是常数时间,即都为o(1)的,不过循环队列是事先申请好空间,使用期间个释放,面对于链队列,每次申请和释放结点也会存在一些时间开销。如果人队出队预累,则两者还是有细微养钟。对于空间上来说,循环队列必须有一个固定的长度,所以就有了存储元素个数和空间浪费的问题。而铺队列不存在这个问题,尽管它需要个指针城,会产生一些空间上的开销,但也可以接受。所以在空间上,销队列更加灵话。
总的来说,在可以确定队列长度最大值的情况下,建汉用循环队列,如果你无法预估队列的长度时,则用链队列。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值