第五周--建立顺序栈算法库
来源:互联网 发布:windows启用网络发现 编辑:程序博客网 时间:2024/06/12 20:15
/ 烟台大学计控学院 作 者:孙子策 完成日期:2016.9.29问题描述:定义顺序栈存储结构,实现其基本运算,并完成测试。 要求: 头文件sqstack.h中定义数据结构并声明用于完成基本运算的函数。
在sqstack.cpp中实现这些函数 在main函数中完成测试,包括如下内容: (1)初始化栈s (2)判断s栈是否为空 (3)依次进栈元素a,b,c,d,e (4)判断s栈是否为空 (5)输出栈长度 (6)输出从栈顶到栈底元素 (7)出栈,并输出出栈序列 (8)判断s栈是否为空 (9)释放栈 /
sqstack.h代码:
#ifndef SQSTACK_H_INCLUDED#define SQSTACK_H_INCLUDED#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); //输出栈#endif // SQSTACK_H_INCLUDED
sqstack.cpp代码:
#include"sqstack.h"#include<stdio.h>#include<malloc.h>void InitStack(SqStack *&s){ s=(SqStack *)malloc(sizeof(SqStack)); s->top=-1;}void DestroyStack(SqStack *&s){ free(s);}int StackLength(SqStack *s) //返回栈中元素个数——栈长度{ return(s->top+1);}bool StackEmpty(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 true;}void DispStack(SqStack *s) //输出栈{ int i; for (i=s->top;i>=0;i--) printf("%c ",s->data[i]); printf("\n");}
main.cpp代码:
#include"sqstack.h"#include<stdio.h>#include<malloc.h>void InitStack(SqStack *&s){ s=(SqStack *)malloc(sizeof(SqStack)); s->top=-1;}void DestroyStack(SqStack *&s){ free(s);}int StackLength(SqStack *s) //返回栈中元素个数——栈长度{ return(s->top+1);}bool StackEmpty(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 true;}void DispStack(SqStack *s) //输出栈{ int i; for (i=s->top;i>=0;i--) printf("%c ",s->data[i]); printf("\n");}
知识点总结:
算法库的建立
心得体会:
能较好的运用库了。
0 0
- 第五周--建立顺序栈算法库
- 第五周 建立顺序栈算法库
- 第五周 建立顺序栈算法库
- 第五周 建立顺序栈算法库
- 第五周 项目一-建立顺序栈算法库
- 第五周项目1--建立顺序栈算法库
- 第五周 项目 1 建立顺序栈算法库
- 第五周项目1-建立顺序栈算法库
- 第五周 项目1-建立顺序栈算法库
- 第五周项目1 -建立顺序栈算法库
- 第五周 项目一【建立顺序栈算法库】
- 第五周项目1-建立顺序栈算法库
- 第五周项目1-建立顺序栈算法库
- 第五周项目一 建立顺序栈算法库
- 第五周【项目一-建立顺序栈算法库】
- 第五周项目1-建立顺序栈算法库
- 第五周项目1-建立顺序栈算法库
- 第五周项目1--建立顺序栈算法库
- xCode 8 升级后打印许多网络相关的日志解决方法
- 搭建spring工程配置数据源连接池
- 第五周项目1--建立顺序栈算法库
- 快速自动更新Android Studio版本
- iOS——百度地图点击标注事件
- 第五周--建立顺序栈算法库
- 5、RIOT操作系统编译cc2538后的文件下载
- 淘宝开源项目TbSchedule的部署和使用
- 第五周 项目1 -建立顺序栈算法库
- Android 各层中日志打印功能的应用
- iOS开发常见错误
- Matlab预分配内存
- 配置Reporting Service 2012
- 欢迎使用CSDN-markdown编辑器