这样定义栈结构可以吗?

weiyiabout 2008-05-08 09:23:45
想使栈里的元素是字符型的


//Stack.h
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>

#ifndef STACK_H
#define STACK_H

class Stack
{
public:
Stack();
~Stack();

bool isEmpty();//判断栈是否为空
int getTop(char &d);//获得最上面的元素
int pop(char &d);//将最上面的元素弹出
int push(char d);//将指定元素压入栈
private:
enum{STACK_INIT_SIZE = 10,STACK_INCREMENT = 2};

char* base;//栈底指针
char* top;//栈顶指针
int stackSize;//栈的大小

void initialize();//初始化栈
void destroy();//销毁栈
};
#endif

//Stack.cpp
#include "Stack.h"

//构造函数
Stack::Stack()
{
initialize();
}
//析构函数
Stack::~Stack()
{
destroy();
}
//初始化
void Stack::initialize()
{
base = (char*)malloc(STACK_INIT_SIZE * sizeof(char));
if(!base)
exit(0);
top = base;
stackSize = STACK_INIT_SIZE;
}
//销毁
void Stack::destroy()
{
base = top = NULL;
stackSize = 0;
}
//栈是否为空
bool Stack::isEmpty()
{
if(base == top)
return true;
else
return false;
}
//获得栈顶元素
int Stack::getTop(char &d)
{
if(base == top)
return 0;
else
d = *(top - 1);
return 1;
}
//出栈
int Stack::pop(char &d)
{
if(base == top)
return 0;
d = *(top - 1);
top--;
return 1;
}
//入栈
int Stack::push(char d)
{
if(top - base >= stackSize)
{
base = (char*)realloc(base,(stackSize + STACK_INCREMENT) * sizeof(char));
if(!base)
exit(0);
top = base + stackSize;
stackSize += STACK_INCREMENT;
}
*top = d;
top++;
return 1;
}
...全文
219 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisheng053758 2008-05-09
  • 打赏
  • 举报
回复
这样行呀
你若想用c++实现的话,有现成的Stack类。
只要写上using namespace std;就行了,不过是个模板类。
phidemon 2008-05-09
  • 打赏
  • 举报
回复
想你所想,顶一个!
fire_woods 2008-05-09
  • 打赏
  • 举报
回复
只发现有内存泄漏
还有恐怖的exit(0);

这两个问题,其他的米仔细看.
昨日,11.19,最新整理了,第61-80题,现在公布上传。 另加上之前公布的第1-60 题,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的面试题,都是这100 道题系列的翻版, 此微软等公司数据结构+算法面试100 题系列,是极具代表性的经典面试题。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 题[第21-40 题答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 题[前20 题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 题[前25 题] http://download.csdn.net/source/2796735 题目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 题[1-40 题] http://download.csdn.net/source/2778852 5.[第1 题-60 题汇总]微软等数据结构+算法面试100 题 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何题目或任何答案,有任何问题,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何题目或资源享有版权。转载以上公布的任何一题, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧