第五周 项目 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] << " ";}}


运行结果

总结:学习栈的基本使用


原创粉丝点击