链栈——入栈和出栈

链栈——入栈和出栈

栈 和 双端栈:

链栈——入栈和出栈

出入栈跟单链表的头插法基本是一样的 ,不过对头插法有了更深的理解 :

表头是不动的,初始指向空,插入时,新建的节点真的就在表头与NULL之间插入,以后再插入的时候都是在表头与第一个节点之间插入的。可以参考https://blog.csdn.net/DREAM_yao/article/details/104759320   链表头插法

/*链栈的进栈和出栈*/
#include<stdio.h>
#include<iostream>
using namespace std;
struct Stack
{
    int data;
    Stack *nex;
};
/*相当于头插法*/
void push_stack(Stack *stack1,int x)
{
    Stack *temp = new Stack;
    temp->data=x;
    temp->nex=stack1->nex;
    stack1->nex=temp;
}
void pop_stack(Stack *stack1)
{
    stack1=stack1->nex;
    while(stack1)
    {
        printf("%d
",stack1->data);
        stack1=stack1->nex;/*出栈*/
    }
}
int main()
{
    Stack *stack1 = new Stack;
    stack1->nex=NULL;
    int x;
    for(int i=1; i<=5; i++)
    {
        scanf("%d",&x);
        push_stack(stack1,x);
    }
    pop_stack(stack1);

    return 0;
}