您的位置:首页 > 其它

链栈

2014-09-29 20:45 113 查看
#include<iostream>
using namespace std;
typedef int ElemType;
typedef struct node
{
ElemType data;
struct node *pNext;
}Node,*pNode;
void InitStack(pNode pS)//链栈无头节点,pS始终指向栈顶元素
{
pS = NULL;
return;
}
bool StackEmpty(pNode pS)
{
if (!pS)
return true;
else
return false;
}
bool GetTop(pNode pS, ElemType &e)
{
if (!pS)
return false;
e = pS->data;
return true;
}
void Push(pNode &pS, ElemType e)
{
pNode pNew = new Node;
pNew->data = e;
pNew->pNext = pS;
pS = pNew;
pNew = NULL;
return;
}
bool Pop(pNode &pS, ElemType &e)
{
if (!pS)
return false;
else{
e = pS->data;
pNode pTem = pS;
pS = pS->pNext;
delete pTem;
pTem = NULL;
return true;
}
}
void Traverse(pNode pS)
{
while (pS)
{
cout << pS->data << " ";
pS = pS->pNext;
}
cout << endl;
return;
}
int main(void)
{
pNode pS=NULL; ElemType e = 0;
InitStack(pS);
Push(pS, 1);
Push(pS, 2);
Push(pS, 3);
Push(pS, 4);
Push(pS, 5);
Push(pS, 6);
Traverse(pS);
GetTop(pS, e);
cout <<e<<endl;
Pop(pS, e);
GetTop(pS, e);
cout << e << endl;
Traverse(pS);
return(0);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: