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;
代码实现略:实现和顺序表、单链表基本操作一样