#include<iostream>
using namespace std;
struct Node
{
int n;
Node * next;
};
void push(Node *&pHead, int x)
{
Node *pNew = new Node;
pNew->n = x;
pNew->next = NULL;
if (!pHead)
{
pHead = pNew;
}
else
{
pNew->next = pHead;
pHead = pNew;
}
}
void printLink(const Node *pHead)
{
Node * pNow = (Node *)pHead;
while (pNow)
{
cout << pNow->n << " ";
pNow = pNow->next;
}
cout << endl;
}
int pop(Node *&pHead)
{
if (!pHead)
{
return 0;
}
int x = pHead->n;
Node * p = pHead;
pHead = pHead->next;
delete p;
return x;
}
int main()
{
Node *pHead = NULL;
while (1)
{
cout << "**********菜单**********" << endl;
cout << " 1.压栈 " << endl;
cout << " 2.出栈 " << endl;
cout << " 3.打印栈的内容 " << endl;
cout << " 4.退出 " << endl;
int x;
cin >> x;
if (x == 1)
{
cout << "请输入数字:";
int n;
cin >> n;
push(pHead, n);
}
if (x == 2)
{
cout << "出栈:";
cout << pop(pHead) << endl;
}
if (x == 3)
{
cout << "打印栈的内容:";
printLink(pHead);
}
if (x == 4)
{
break;
}
}
return 0;
}
用链表实现栈功能
最新推荐文章于 2024-07-17 15:29:28 发布