#实验#课后的实践—顺序栈的实现 物联1131-01(待完善)

来源:互联网 发布:网络数字电视无信号 编辑:程序博客网 时间:2024/06/08 08:22

实验目的:

掌握栈的顺序存储结构;验证顺序栈与其基本操作的实现;验证栈的操作特征。

参考教材:《实验指导手册》 p.185


实验环境:

操作系统:Windows 10 TP x64

编译环境:Visual Studio Express 2013

实验内容:

利用C++建立一个空栈;对已建立的栈进行插入、删除、取栈顶元素等基本操作。


编译环境预览:


实验效果预览:


源代码:

SeqStack.h

#ifndef SeqStack_H#define SeqStack_Hconst int StackSize = 10;template<class DataType>class SeqStack{public:SeqStack();~SeqStack(){}void Push(DataType x);DataType Pop();DataType GetTop();int Empty();private:DataType data[StackSize];int top;};#endif


SeqStack.cpp

#include"SeqStack.h"template<class DataType>SeqStack<DataType>::SeqStack(){top = -1;}template<class DataType>void SeqStack<DataType>::Push(DataType x){if (top == StackSize - 1)throw"上溢";top++;data[top] = x;}template<class DataType>DataType SeqStack<DataType>::Pop(){DataType x;if (top == -1)throw"下溢";x = data[top--];return x;}template<class DataType>DataType SeqStack<DataType>::GetTop(){if (top != -1)return data[top];}template<class DataType>int SeqStack<DataType>::Empty(){if (top == -1)return 1;else return 0;}


SeqStack_main.cpp

#include<iostream>using namespace std;#include "SeqStack.cpp"void main(){SeqStack<int>S;if (S.Empty())cout << "栈为空" << endl;elsecout << "栈非空" << endl;cout << "对15和10执行入栈操作" << endl;S.Push(15);S.Push(10);cout << "栈顶元素为:" << endl;cout << S.GetTop() << endl;cout << "执行一次出栈操作" << endl;S.Pop();cout << "栈顶元素为:" << endl;cout << S.GetTop() << endl;}


0 0
原创粉丝点击