一个栈类的实现的问题,求教!
大家好,我有个问题想问一下,我想实现一个栈类,自己写了些代码(如下),现在有一个小问题:1);这个栈的数据类型都是int的,假如现在我在主函数中有两个对象,一个要用数据类型为int的,另一个要用char的,那么应该怎么办呢? 另外我这个代码没问题吧??在此先谢谢大家了!stack.h
程序代码:
#ifndef _STACK_H
#define _STACK_H
#define STACK_INIT_SIZE 100
typedef struct tagSqStack{
int *base; // 栈底
int *top; // 栈顶
int stacksize;
} SqStack;
class stack
{
private:
SqStack S;
public:
int InitStack(); // 创建栈
void Push(int); // 向栈中放入数据[压栈]
void Pop(int &); // 从栈中取数据[弹栈]
int GetTop(); // 查看栈顶数据
}
#endif
stack.cpp
程序代码:
#include"stack.h"
#include<iostream>
using namespace std;
//???为了用new,是不是在这个cpp文件里写这个#include<iostream> using namespace std;
int InitStack() // 创建栈
{
S.base = new int[STACK_INIT_SIZE];
if (!S.base) return(-1);
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return(1);
}
void Push(int e) // 向栈中放入数据[压栈]
{
*S.top = e;
S.top++;
}
void Pop(int &e) // 从栈中取数据[弹栈]
{
if (S.top == S.base) return;
S.top--;
e = *S.top;
}
int GetTop() // 查看栈顶数据
{
if (S.top == S.base) return('E');
return(*(S.top-1));
}[ 本帖最后由 影x 于 2011-10-15 22:36 编辑 ]








