第五周 项目 1
来源:互联网 发布:苹果手机导照片到mac 编辑:程序博客网 时间:2024/06/05 09:50
sqstack.h代码
/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: *作 者:陈军正 *完成日期:2017年10月10日 *版 本 号:v1.0 * * 定义顺序栈存储结构,实现其基本运算,并完成测试。*/ #define MaxSize 100typedef char ElemType;typedef struct{ElemType data[MaxSize];int top; //栈指针} SqStack; //顺序栈类型定义void InitStack(SqStack *&s); //初始化栈void DestroyStack(SqStack *&s); //销毁栈bool StackEmpty(SqStack *s); //栈是否为空int StackLength(SqStack *s); //返回栈中元素个数——栈长度bool Push(SqStack *&s, ElemType e); //入栈bool Pop(SqStack *&s, ElemType &e); //出栈bool GetTop(SqStack *s, ElemType &e); //取栈顶数据元素void DispStack(SqStack *s); //输出栈main.cpp代码
#include <stdio.h>#include "sqstack.h"#include <iostream>int main(){ElemType e;SqStack *s;printf("(1)初始化栈s\n");InitStack(s);printf("(2)栈为%s\n", (StackEmpty(s) ? "空" : "非空"));printf("(3)依次进栈元素a,b,c,d,e\n");Push(s, 'a');Push(s, 'b');Push(s, 'c');Push(s, 'd');Push(s, 'e');printf("(4)栈为%s\n", (StackEmpty(s) ? "空" : "非空"));printf("(5)栈长度:%d\n", StackLength(s));printf("(6)从栈顶到栈底元素:"); DispStack(s);printf("(7)出栈序列:");while (!StackEmpty(s)){Pop(s, e);printf("%c ", e);}printf("\n");printf("(8)栈为%s\n", (StackEmpty(s) ? "空" : "非空"));printf("(9)释放栈\n");DestroyStack(s);system("pause");return 0;}
sqstack.cpp 代码
#include <iostream>#include "sqstack.h"#include <malloc.h>using namespace std;void InitStack(SqStack *&s) //初始化栈{s = (SqStack *)malloc(sizeof(SqStack));s->top = -1;}void DestroyStack(SqStack *&s) //销毁栈{free(s);}bool StackEmpty(SqStack *s) //栈是否为空{return (s->top == -1);}int StackLength(SqStack *s) //返回栈中元素个数——栈长度{return (s->top + 1);}bool Push(SqStack *&s, ElemType e) //入栈{if (s->top == MaxSize - 1)return false;s->top++;s->data[s->top] = e;return true;}bool Pop(SqStack *&s, ElemType &e) //出栈{if (s->top == -1)return false;e = s->data[s->top];s->top--;return true;}bool GetTop(SqStack *s, ElemType &e) //取栈顶数据元素{if (s->top == -1)return false;e = s->data[s->top];return false;}void DispStack(SqStack *s) //输出栈{int i;for ( i = s->top; i >=0; i--){cout << s->data[i] << " ";}}
运行结果
总结:学习栈的基本使用
阅读全文
0 0
- 第五周项目1
- 第五周项目1
- 第五周 项目1
- 第五周项目1
- 第五周项目1
- 第五周【项目1
- 第五周 【项目1
- 第五周项目1
- 第五周项目1
- 第五周-【项目1
- 第五周 项目1
- 第五周 【项目1
- 第五周 项目 1
- 第五周 项目1
- 第五周 【项目1
- 第五周项目1
- 第五周-项目1
- 第五周【项目1
- D
- 用css实现自定义复选框
- 了解你服务器的心情——top命令详解
- 记录 服装店进销存管理系统 需求分析资料
- ElasticSearch集群搭建及配置监视服务
- 第五周 项目 1
- [YZOJ]P3281-小猿刷题-线性筛法优化
- 美图笔试题;浏览器访问XXX.com的时候发生了什么过程
- 文件系统与磁盘分区
- python 中OS.path函数大全
- BZOJ 1746: [Usaco2005 open]Lazy Cows
- 整合测试报告邮件发送
- 算法(一):排序
- 字节流与字符流的区别详解