栈类C++实现
来源:互联网 发布:人工智能综合报告 编辑:程序博客网 时间:2024/05/17 07:05
头文件stack.h:
#pragma once//用数组实现栈,数组索引为0的位置为栈底,索引top指向栈顶template<typename T>class Stack{public:Stack(int capcity=20);~Stack();void ClearStack();bool isEmpty();bool isFull();int StackLength();T GetTop();void Push(T e);void Pop();private:T* elemArray;int top;int capcity;};
实现文件stack.cpp:
#include "stack.h"#include <afxwin.h>#include <iostream>using namespace std;template<typename T>Stack<T>::Stack(int capcity){if (capcity<0){MessageBox(NULL,TEXT("the capcity is illegal"),TEXT(""),MB_OK);return;}this->capcity=capcity;top=0;elemArray=new T[capcity];}template<typename T>Stack<T>::~Stack(){delete[] elemArray;}template<typename T>void Stack<T>::ClearStack(){top=0;}template<typename T>bool Stack<T>::isEmpty(){return (top==0);}template<typename T>bool Stack<T>::isFull(){return (top==capcity);}template<typename T>int Stack<T>::StackLength(){return top;}template<typename T>T Stack<T>::GetTop(){if (isEmpty()){MessageBox(NULL,TEXT("the stack is empty"),TEXT(""),MB_OK);return 0;}return elemArray[top-1];}template<typename T>void Stack<T>::Push(T e){if (isFull()){cout<<"The stack is full"<<endl;return;}elemArray[top]=e;top++;}template<typename T>void Stack<T>::Pop(){if (isEmpty()){MessageBox(NULL,TEXT("the stack is empty"),TEXT(""),MB_OK);return ;}top--;}
注意:在测试栈类时,对栈类的正确引用时:#include "stack.cpp"
0 0
- C/C++: 实现加减乘除。
- C实现C(3)
- 排序算法实现(C/C++)
- [C/C++]汉诺塔的实现
- C/C++--strcpy函数实现
- C/C++--memcpy函数实现
- C/C++--memmove函数实现
- C/C++--strcpy函数实现
- C/C++--strlen函数实现
- C/C++--strcmp函数实现
- 【C/C++】String类实现
- c++/c实现线程池
- C udp实现c/s
- C实现C(二)
- 【库】c实现数组
- 【库】c实现字符串
- 【库】c实现数组
- 【库】c实现字符串
- 重载和重写
- 第一遍机房收费系统-----数据库的附加
- 各类排序算法(已包装好)
- 动态绑定的内幕
- 两个数据交换的几种方式
- 栈类C++实现
- wget 下载整个网站,或者特定目录
- 看看有什么问题CF 462B. Appleman and Card Game
- ora-12514:could not resolve the connect identifier specified
- 快速掌握Ajax-Ajax基础实例
- 冒泡排序(java实现)
- ios学习网站
- Linux下图形化调试工具: kdbg, Affinic
- zend framework框架开发配置和windows下搭建PHP开发环境