堆栈链表储存

//堆栈,链表实现
#include<iostream>
using namespace std;
class stack
{
public:
int data;
stack*next;
};
stack*Linkstack()
{
stack*s = new stack;
s->next = NULL; //生成一个头结点,但不表示任何数
return s;
}
int pop(stack*head); //出栈
void push(stack*head,int x);//进栈
int main()
{
stack *head=NULL;
head = Linkstack();
int i,m;
for (i = 0; i < 10; i++){
cin >> m; //十个数进堆栈
push(head, m);
}
for (i = 0; i < 10;i++)
cout<<pop(head)<<" "; //倒序出堆栈
cout << endl;
return 0;
}
void push(stack*head,int x)
{
stack*ptrl = new stack;
ptrl->data = x;
ptrl->next = head->next;
head->next = ptrl; //依然把head作为头结点
}
int pop(stack*head)
{
if (head->next==NULL){
cout << "栈已空"<<endl;
return 0;
}
int l = head->next->data; //保存要出栈的值
stack *p = head->next;
head->next=p->next;
delete p; //删除以出栈的结点
return l;
}

原文地址:https://www.cnblogs.com/td15980891505/p/4405026.html