一个栈类的实现的问题,求教!
大家好,我有个问题想问一下,我想实现一个栈类,自己写了些代码(如下),现在有一个小问题: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 编辑 ]