大话数据结构第四章栈十个问题及解答
来源:互联网 发布:xmind 8 mac 注册码 编辑:程序博客网 时间:2024/06/05 17:11
大话数据结构第四章栈十个问题及解答
1.什么是栈?它有什么特点?
栈是限定仅在表尾进行插入和插入和删除的线性表。
特殊之处在于限制了这个线性表的插入和删除位置,它始终只在栈顶进行,也使得栈底是固定的,最先进栈的只能在栈底。
2.两栈共享空间的定义是什么?
我们可以用一个数组来存放两个栈。数组有两个端点,两个栈有两个栈底,让一个栈的栈底为数组的始端,即下标为0处,另一个栈底为数组的末端,即下标为数组长度n-1处。这样,两个栈如果增加元素,就是两端点向中间延伸。
3.两栈共享空间什么时候可以判定栈满?
如果top1 top2分别是栈1和栈2的栈顶指针,只需判定top1+1是否等于top2即可判定是否栈满。
4.栈的链式存储结构有什么特点?
链栈不需要头结点,基本不存在栈满的情况,除非是内存没有可以使用的空间,对于空栈,头指针指向空。
5.顺序栈和链栈的区别?
顺序栈和链栈在时间复杂度上是一样的,均为O(1)。对于空间性能,顺序栈需要事先确定一个固定的长度,可能会存在空间浪费的问题,但它的优势是存取时定位很方便,而链栈则需要每个元素都有指针域,这同时也增加了内存开销,但对于栈的长度无限制。
6.什么是用顺序栈?什么时候用炼栈?
如果栈的使用过程中元素变化不可预料,有时很小,优势非常大,那么最好用炼栈。反之,如果变化范围在可控范围内,建议使用顺序栈好一些。
7.栈的作用?
栈的引入简化了程序设计的问题,划分了不同关注层次,使得思考范围缩小,更加聚焦于我们要解决的问题核心。栈还有一个很重要的应用:在程序设计语言中实现了递归。
8.递归的定义?
在高级语言中,调用自己和其他函数并没有本质的不同。我们把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称作递归函数。
9.递归定义至少需要什么条件?
每个递归定义必须至少有一个条件,满足时递归不再进行,即不再引用自身而是返回值退出。
10.递归和迭代的区别?
迭代使用的是循环结构,递归使用的是选择结构。递归能使程序的结果更加的清晰,更简洁,更容易让人理解,从而减少读懂代码的时间。但是大量的递归调用会建立函数的副本,会耗费大量的实践和内存。迭代则不需要反复调用函数和占用额外的内存。
1.什么是栈?它有什么特点?
栈是限定仅在表尾进行插入和插入和删除的线性表。
特殊之处在于限制了这个线性表的插入和删除位置,它始终只在栈顶进行,也使得栈底是固定的,最先进栈的只能在栈底。
2.两栈共享空间的定义是什么?
我们可以用一个数组来存放两个栈。数组有两个端点,两个栈有两个栈底,让一个栈的栈底为数组的始端,即下标为0处,另一个栈底为数组的末端,即下标为数组长度n-1处。这样,两个栈如果增加元素,就是两端点向中间延伸。
3.两栈共享空间什么时候可以判定栈满?
如果top1 top2分别是栈1和栈2的栈顶指针,只需判定top1+1是否等于top2即可判定是否栈满。
4.栈的链式存储结构有什么特点?
链栈不需要头结点,基本不存在栈满的情况,除非是内存没有可以使用的空间,对于空栈,头指针指向空。
5.顺序栈和链栈的区别?
顺序栈和链栈在时间复杂度上是一样的,均为O(1)。对于空间性能,顺序栈需要事先确定一个固定的长度,可能会存在空间浪费的问题,但它的优势是存取时定位很方便,而链栈则需要每个元素都有指针域,这同时也增加了内存开销,但对于栈的长度无限制。
6.什么是用顺序栈?什么时候用炼栈?
如果栈的使用过程中元素变化不可预料,有时很小,优势非常大,那么最好用炼栈。反之,如果变化范围在可控范围内,建议使用顺序栈好一些。
7.栈的作用?
栈的引入简化了程序设计的问题,划分了不同关注层次,使得思考范围缩小,更加聚焦于我们要解决的问题核心。栈还有一个很重要的应用:在程序设计语言中实现了递归。
8.递归的定义?
在高级语言中,调用自己和其他函数并没有本质的不同。我们把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称作递归函数。
9.递归定义至少需要什么条件?
每个递归定义必须至少有一个条件,满足时递归不再进行,即不再引用自身而是返回值退出。
10.递归和迭代的区别?
迭代使用的是循环结构,递归使用的是选择结构。递归能使程序的结果更加的清晰,更简洁,更容易让人理解,从而减少读懂代码的时间。但是大量的递归调用会建立函数的副本,会耗费大量的实践和内存。迭代则不需要反复调用函数和占用额外的内存。
阅读全文
0 0
- 大话数据结构第四章栈十个问题及解答
- 大话数据结构第三章链表十个问题及解答
- 第四章语句十个问题及解答
- 第八章函数十个问题及解答
- 《大话数据结构》第四章栈与队列
- 大话数据结构--第四章 栈与队列
- 《大话数据结构》第四章 栈与队列
- 《大话数据结构》第四章 队列
- 第五章数组与指针十个问题及解答
- 第七章预处理与结构体十个问题及解答
- Linux C 第十一章文件操作十个问题及解答
- 操作系统基础训练十个问题及解答
- 操作系统基础训练十个问题及解答
- 操作系统基础训练十个问题及解答
- 《大话数据结构》笔记之 第四章 栈与队列
- 大话数据结构第四章——栈与队列
- 大话数据结构 code 第四章 01顺序栈_Stack
- 大话数据结构 第四章 栈与队列 (读书笔记)
- C语言位操作中指定的某一位数置0、置1、取反
- HDU
- 深入浅出JMS(一)--JMS基本概念
- 我的电路实践
- bat命令备份oracle数据库,并且删除7天之前的数据文件
- 大话数据结构第四章栈十个问题及解答
- Termux的基础知识
- Linux基础练习(五)
- 巧用匿名函数重构你的代码
- EasyNVR HLS 、RTMP网页直播方案前端完善:监听表单变动
- U-Boot目录结构
- Npoi 读取EXCEL 2003 2007
- opencv篇之一 图像的读取和显示
- 内置锁(一)--- synchronized 介绍与用法