ds:栈

栈:一种线性表,特点是后进先出。因为是顺序表,所以可以用顺序表、链表实现。

->顺序栈:顺序表实现的栈

->链栈:单链表实现的栈,入栈=单链表的头插法,出栈=单链表依次删除表头后的元素。因为是单链表实现,所以也分为有头结点的单链表实现的链栈、无头结点的单链表实现的链栈

 

注意:

初始化栈时如果将栈顶指针(s.top)设为-1,那么push(stack &S,int x)时是先s.top++; 再s.top = x;出栈是先x = s.top;再s.top --;

初始化栈时如果将栈顶指针(s.top)设为0,那么push(stack &S,int x)时是先s.top = x; 再s.top++;出栈是先s.top --;再x = s.top;

对于顺序栈,因为顺序表长度有限最大为maxsize,所以入栈时要判断栈满:s.top == maxsize -1;出栈时要判断栈空:s.top ==-1;

 

代码实现略:实现和顺序表、单链表基本操作一样

posted @ 2023-05-04 22:38  _titleInfo  阅读(19)  评论(0编辑  收藏  举报
//雪花飘落效果