数据结构栈和队列
来源:互联网 发布:js替换标签 编辑:程序博客网 时间:2024/06/15 15:30
1.栈的定义是啥?
答:栈是限定只在表尾进行插入和删除操作的线性表。
2、理解栈的定义的注意点?
答:
(1)首先它是一个线性表,栈元素具有线性关系,即前驱后继关系。
(2)它的特殊之处在于限制了这个线性表的插入和删除位置,它始终只在栈顶进行。
(3)栈的插入操作,叫做进栈。
(4)栈的删除操作,叫做出栈。
3、栈和普通线性表的不同点?
答:
栈是特殊的线性表,是只允许在一端进行插入和删除操作的线性表。允许插入和删除的叫栈顶,反之则是栈底。栈的特点是:后进先出。
普通的线性表可以在头节点出进行插入删除操作。也能在线性表末端进行插入删除。
4、堆栈有哪些实际的应用?
答:
(1)用于符号匹配;
(2)用于计算代数式(也可以用二叉树解决);
(3)构造表达式(也可以用二叉树解决);
(4)用于函数调用
5、栈的基本运算有哪些?
答:
1) initstack(s),构造一个空栈;
2) stackempty(s),判栈空;
3) stackfull(s),判栈满;
4) push(s,x),进栈;
5) pop (s),退栈;
6) stacktop(s),取栈顶元素。
6、两栈共享空间能不能扩展空间?
答:
两个栈如果增加元素,就是两端点向中间延伸。并且事实上,使用这样的数据结构,通常都是当两个栈的空间需求有相反关系时,也就是一个栈增长时另一个栈在缩短的情况
7、链栈的空间利用率和顺序栈的比较?
答:
链栈能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。
8、循环队列和两栈共享空间的区别?
答:
两者都是为了提高空间利用率,并且循环队列是对队列的改进,两栈是两个栈共享一块内存空间。
9、栈的“上溢”和“下溢”怎么理解?
答:
当栈满时,做进栈运算必定产生空间溢出,称“上溢”。 当栈空时,做退栈运算必定产生空间溢出,称“下溢”。上溢是一种错误应设法避免,下溢常用作程序控制转移的条件。
10、什么是队列的链式存储结构?
答:
其实就是线性表的单链表,只不过只能尾进头出而已,简称为链队列,为了操作上的方便,我们将对头指针指向链队列的头结点,而队尾指针指向终端节点,空队列时,front和rear都指向头结点。
- 数据结构-栈和队列
- 数据结构-栈和队列
- 数据结构--栈和队列
- 数据结构-栈和队列
- 数据结构-栈和队列
- 数据结构 栈和队列
- 数据结构-栈和队列
- 数据结构-栈和队列
- 数据结构-栈和队列
- 数据结构:栈和队列
- 数据结构-栈和队列
- 数据结构--栈和队列
- 【数据结构】队列和栈
- 数据结构--栈和队列
- 【数据结构】-栈和队列
- 数据结构 栈和队列
- 数据结构-栈和队列
- 【数据结构】栈和队列
- C++分析——文件操作
- 训练日记-35
- vue实现横向滚动效果(better-scroll)
- BMP文件格式详解(BMP file format)
- 取消CSDN的手机绑定
- 数据结构栈和队列
- 高精度 <加减乘除>
- 68. Text Justification
- Mac && XCode 操作入门
- struts2重点、精华、用法总结(七):数据处理机制之struts标签
- android o 适配小记
- 分治算法 快速排序
- 说说激活函数
- 漫步最优化三十六——基本共轭方向法