数据结构——用类模板实现顺序栈(C++)

数据结构——用类模板实现顺序栈(C++)_第1张图片

数据结构——用类模板实现顺序栈(C++)_第2张图片

 用Type代替所有int类型数据结构——用类模板实现顺序栈(C++)_第3张图片

 不用类模板的代码:数据结构——用类模板实现顺序栈(C++)_第4张图片

 不用类模板的子函数:

数据结构——用类模板实现顺序栈(C++)_第5张图片

 用类模板的子函数:

数据结构——用类模板实现顺序栈(C++)_第6张图片

 数据结构——用类模板实现顺序栈(C++)_第7张图片

 使用类模板修改后的栈基本操作代码:

/*main.cpp文件*/
#include "Stack.h"

/*类模板不带异常捕获*/
int main(){
	CharStack s1(2);//定义一一个字符型的堆栈
	DoubleStack s2(2);//在定义一个double型堆栈 
	char ch;
	double d;
	
	s1.push('a');
	s1.push('b');
	ch=s1.pop();
	cout<
/*Stack.h文件*/
#ifndef STACK_H
#define STACK_H


const int MAX_SIZE=100;
template
class stack
{
privata:
    DataType *data;
    int size;
    int top;
public:
	Stack();
	Stack(int s);//这个是数组长度,i、必须用int 
	~Stack();
	//void push(char ch);
	void push(DataType n);
	//char pop();
	DataType pop();
	//char getTop();
	DataType getTop();
	bool isEmpty();
	bool isFull();
	void setNull();
	void reverseDisplay();
	DataType* getData();
	int getLength();
};
//为保证模板类可以正常使用
//需要在源文件的末尾加上
typedef Stack CharStack;
typedef Stack IntStack;
typedef Stack DoubleStack;

#endif
/*Stack.cpp文件*/
#include "Stack.h"
#include 
using namespace std;

templata
Stack::Stack(){
	top = -1;
	size = MAX_SIZE;
	data = new DataType[size];
}

templata
Stack::Stack(int s){
	size = s;
	top = -1;
	data = new DataType[size];
}
templata
Stack::~Stack(){}

//以此类推,等等子函数

//在.cpp文件中显示。需要声明 
typedef class Stack ;
typedef class Stack ;
typedef class Stack ; 

你可能感兴趣的:(数据结构,数据结构)