链栈

来源:互联网 发布:mac 用户文件夹迁移 编辑:程序博客网 时间:2024/06/05 02:19
#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;elsereturn 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);}

0 0