栈的链式存储初始化栈算法?栈的顺序存储和链式存储
一、简述栈和队列的顺序存储结构和链式存储结构的优缺点
顺序栈--入栈*作受数组上界的约束有可能发生栈上溢,且需要地址连续的存储单元。
链栈--无须地址连续,便于多个栈共享存储单元,且不存在栈满上溢情况。
顺序队列--需地址连续且有假上溢现象(需改为循环队列才可解决假上溢)
链式队列--特别适合于数据元素变动比较大的情况,且不存在队列满而产生的溢出问题。
二、栈的顺序存储和链式存储
栈的顺序存储)也称为顺序栈*是指用一组地址连续的存储单元依次存储自栈顶到栈底的数据元素,同时附设指针 top指示栈顶元素的位置。用链表作为存储结构的栈称为链栈,链表中的结点根据需要动态申请,不存在栈满的情况。
📚顺序栈
在顺序存储方式下,需要预先定义或申请栈的存储空间,也就是说栈空间的容量是有限的。因此在顺序栈中,当一个元素入栈时,需要判断是否栈满(即找空间中是否有空闲单元),若栈满,则元素入栈会发生上溢现象。
🔗链栈
由于栈中元素的插入和删除仅在栈顶一端进行,因此不必另外设置头指针,链表的头指针就是栈顶指针。
🔍判断栈空
无论栈采用哪种存储结构,进行出栈*作时都要判断是否栈空,栈为空时无法完成出栈*作。