//以下是stack.htypedef int ElemType;struct LNode{ ElemType data; LNode* next;};void InitStack(LNode*
&HS
){ HS=NULL;}void ClearStack(LNode*
&HS
){ LNode *cp,*np; cp=HS; while(cp!=NULL) { np=cp->next; delete cp; cp=np; } HS=NULL;}int StackEmpty(LNode* HS){ return HS==NULL;}ElemType Peek(LNode *HS){ if(HS==NULL){ cerr
<
<"Linked
stack is empty!"<<endl; exit(1); } return HS-
>
data;}void Push(LNode*
&HS
,const ElemType& item){ LNode* newptr=new LNode; if(newptr==NULL){ cerr
<
<"Memory
allocation failare!"<<endl; exit(1); } newptr-
>
data=item; newptr->next=HS; HS=newptr;}ElemType Pop(LNode*
&HS
){ if(HS==NULL){ cerr
<
<"Linked
stack is empty!"<<endl; exit(1); }LNode* p
=HS;
HS
=HS-
>
next;ElemType temp=p->data;delete p;return temp;}//以下是stack.cpp#include
<
iostream
.h
>
//栈的简单应用,从键盘上输入一批整数,然后按照相反的次序打印出来#include
<
stdlib
.h
>
#include"stack.h"#include
<
conio
.h
>
void main(){ LNode *a; InitStack(a); int x;cout
<
<"输入整数,用-1
作为终止键盘输入"<<endl; cin
>
>x; while(x!=-1){ //假定用-1作为终止键盘输入的标志,输入的整数个数不能超过StackMaxSize所规定的值 Push(a,x); cin>>x; } while(!StackEmpty(a)) cout
<
<Pop
(a)<<" "; cout<<endl; getch();}/*http://f2.9612.org//vcpp/webinfo/WebInfoBata1.aspQQ群:34409541 讨论网页 34409326 讨论JAVA 已满 34408784 讨论VC++ 34409699 讨论VC++ 9143041 讨论MFC编程 10614204 讨论C# 10613030 讨论Win32编程 10613067 讨论游戏开发 18779860 讨论JAVA */
转载请注明原文地址: https://ibbs.8miu.com/read-50414.html