博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++顺序栈基本操作
阅读量:6479 次
发布时间:2019-06-23

本文共 2058 字,大约阅读时间需要 6 分钟。

1 #include 
2 #define STACKSIZE 50/*设栈中元素个数为50个*/ 3 using namespace std; 4 5 struct SeqStack 6 { 7 int elem[STACKSIZE]; 8 int top; 9 }; 10 11 /*构造一个空栈*/ 12 void InitStack(SeqStack *S) 13 { 14 S->top=-1; 15 } 16 17 /*将x置入S栈新栈顶*/ 18 bool Push(SeqStack *S,int x) 19 { 20 if(S->top==STACKSIZE-1) 21 return false; 22 S->top++; 23 S->elem[S->top]=x; 24 return true; 25 } 26 27 /*将S栈顶元素弹出,放到x所指的存储空间中带出*/ 28 bool Pop(SeqStack * S,int &x) 29 { 30 if(S->top==-1) 31 return false; 32 x = S->elem[S->top]; 33 S->top--; 34 return true; 35 } 36 37 /*将栈S栈顶元素读出,放到x所指的存储空间中,栈顶指针保持不变*/ 38 bool GetTop(SeqStack * S, int &x) 39 { 40 if(S->top==-1) 41 return false; 42 x = S->elem[S->top]; 43 return true; 44 } 45 46 /*将栈清空*/ 47 void ClearStack(SeqStack * S) 48 { 49 S->top=-1; 50 } 51 52 /*判断栈S是否为空*/ 53 bool IsEmpty(SeqStack * S) 54 { 55 if(S->top==-1) 56 return true; 57 return false; 58 } 59 60 /*判断栈S是否已满*/ 61 bool IsFull(SeqStack * S) 62 { 63 if(S->top==STACKSIZE-1) 64 return true; 65 return 66 false; 67 } 68 69 /*打印栈S所有元素*/ 70 void PrintStack(SeqStack S) 71 { 72 for(int i=0;i<=S.top;i++) 73 cout << S.elem[i] << " "; 74 cout << endl; 75 } 76 77 int main(){ 78 SeqStack s; 79 InitStack(&s); 80 81 for(int i=0;i<60;i++) 82 Push(&s,i); 83 84 cout << IsFull(&s) << endl; 85 86 PrintStack(s); 87 88 int x=0; 89 90 Pop(&s,x); 91 cout << "x= " << x << endl; 92 PrintStack(s); 93 Pop(&s,x); 94 cout << "x= " << x << endl; 95 PrintStack(s); 96 Pop(&s,x); 97 cout << "x= " << x << endl; 98 PrintStack(s); 99 Pop(&s,x);100 cout << "x= " << x << endl;101 PrintStack(s);102 103 GetTop(&s,x);104 cout << "x= " << x << endl;105 PrintStack(s);106 107 ClearStack(&s);108 PrintStack(s);109 cout << IsEmpty(&s) << endl;110 return 0;111 }

 

转载于:https://www.cnblogs.com/xxdfly/p/4378913.html

你可能感兴趣的文章
上海访微软 详解Azure和S+S
查看>>
跨国巨头猛攻语音识别技术 让电脑听懂人们说话
查看>>
使用组策略禁用已安装的设备
查看>>
OSSIM5 自定义安装
查看>>
moosefs即将发布新版
查看>>
Forefront Client Security部署前准备
查看>>
WCF4.0新特性体验(12):服务发现WS-Discovery之Managed Service Discovery
查看>>
FOSCommentBundle功能包:运行测试
查看>>
python
查看>>
SmartGit 试用过期
查看>>
c#参数传递几点小结
查看>>
python 测试驱动开发的简单例子
查看>>
设计模式:观察者模式
查看>>
JDBC中驱动加载的过程分析
查看>>
Aes 加密简单例子
查看>>
AE 线编辑
查看>>
python 回溯法 子集树模板 系列 —— 15、总结
查看>>
软件设计之UML—UML的构成[上]
查看>>
蚂蚁金服硅谷ATEC科技大会:看技术如何带来平等的机会
查看>>
[SPLEB]CodeSmith原理剖析(1)
查看>>