社区
C++ 语言
帖子详情
如何完成一个整形数据的堆栈类并测试
brucelee520
2005-12-27 07:40:39
要求:使用指针存储数据;提供压栈和出栈的公共接口;构造函数通过容量参数构造堆栈,栈容量参数缺省直为0;析构函数完成堆栈的释放,要求提供深拷贝复制构造函数;堆栈的容量可以自动调整;进行测试,
——————————————
我弄了好几天了,一直没弄成功,极度郁闷中,请各位大虾给个例子,让我这个好学的新手参考参考吧,谢谢
...全文
240
12
打赏
收藏
如何完成一个整形数据的堆栈类并测试
要求:使用指针存储数据;提供压栈和出栈的公共接口;构造函数通过容量参数构造堆栈,栈容量参数缺省直为0;析构函数完成堆栈的释放,要求提供深拷贝复制构造函数;堆栈的容量可以自动调整;进行测试, —————————————— 我弄了好几天了,一直没弄成功,极度郁闷中,请各位大虾给个例子,让我这个好学的新手参考参考吧,谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bombwang
2006-01-15
打赏
举报
回复
mark
lxb365
2006-01-15
打赏
举报
回复
自己写数据类型是考试经常考的问题,非常检验你对数据结构的理解,我建议你自己写,很锻炼人的。关于堆栈类,其实是用一个动态数组作为基本存储对象,所以你的第一步是建立一个动态数组,第二步就是在这个数组的基础上定义堆栈的操作,因此写2个文件就可以了,一个array.h,一个stack.h,剩下的你自己考虑吧。
逸学堂
2006-01-15
打赏
举报
回复
楼主,开一贴问两题,一石而鸟!
直接看看CPoint怎么定义的很容易就解决了!
#include <math.h>
using namespace::std;
// 线类
class line
{
public:
line(int,int,int,int);
~line();
void Offset(int x,int y = 0);
float getline();
void Display();
private:
int X1;
int Y1;
int X2;
int Y2;
};
// 构造函数
line::line(int X1,int Y1,int X2,int Y2):X1(X1),Y1(Y1),X2(X2),Y2(Y2)
{
}
// 修改函数
line::~line()
{
}
// 平移 x平移, y平移
void line::Offset(int x,int y /* = 0 */)
{
X1 += x;
X2 += x;
Y1 += y;
Y2 += y;
}
// 获得线的长度
float line::getline()
{
int X(abs(X1 - X2));
int Y(abs(Y1 - Y2));
return (static_cast<float>(sqrt(pow(X,2)+pow(Y,2))));
}
// 输出信息
void line::Display()
{
cout << "(" << X1 << "," << Y1 << "," << X2 << "," << Y2 << ")" << endl;
}
brucelee520
2006-01-15
打赏
举报
回复
哪位大虾能帮忙用C++编个程序不?急用的啊,拜托哦!
题目:编写一个直线类,要求完成类的声名和定义,要求该类至少有以下成员函数;1。通过(X1,Y1,X2,Y2)构造直线类;2。析构函数3。直线的平移4。求直线的长度。5求点到直线的距离6。假设直线的两个坐标点为(10,20),(100,100),按照格式(10,20,100,100)输出直线的信息
注意:所有的成员函数要求在类声明之外(即类体之外)给出其实现部分
Rick_ang
2005-12-29
打赏
举报
回复
运行有什么错误帖上来,人家题目要求写栈怎么还能用stl呢
我啃
2005-12-29
打赏
举报
回复
建议使用std::stack
1)效率高
2)分配器好
3)标准化
4)一切都比自己写好
jiejienihao
2005-12-28
打赏
举报
回复
大家都是高手啊 ,希望大家多多指教我这位刚刚涉足编程一族!!~~~在次感谢大家了啊
brucelee520
2005-12-28
打赏
举报
回复
这个程序运行有错误啊,哪位大侠能帮该下吗?急用啊,多谢拉
brucelee520
2005-12-28
打赏
举报
回复
谢谢二位,呵呵
vollin
2005-12-27
打赏
举报
回复
#include <stack>
std::stack
直接用不就行了?
Rick_ang
2005-12-27
打赏
举报
回复
Push写错了~~改动一下:
int Push(int elem)
{
if(size==stacksize) //这里改成这个
{
base=(int*)realloc(base,(stacksize+20)*sizeof(int));
if(!base) exit(-1);
top=base+MAX_SIZE;
stacksize+=20;
}
*top++=elem;
size++;
return 1;
}
Rick_ang
2005-12-27
打赏
举报
回复
题目不太清楚,好象是要求用链表做,但是看后面又像是在构造函数里面new出一段空间..
我写一个吧,你拿来看看
#include <iostream>
#include <stdlib.h>
using namespace std;
const int MAX_SIZE=100;
class Stack
{
private:
int *base;
int *top;
int size;
int stacksize;//full size
public:
Stack(){
base=top=NULL;
size=0;
stacksize=MAX_SIZE;
}
Stack(int s=0){
base=new int [s];
if(!base) exit(-1);
top=base;
size=0;
stacksize=MAX_SIZE;
}
Stack(Stack& s)
{
if(s.stacksize>=size)
for(int j=0;j<size;j++)
*(s.base+j)=*(base+j);
else{
s.base=(int*)realloc(s.base,size*sizeof(int));
if(!s.base) exit(-1);
for(int i=0;i<size;i++)
*(s.base+i)=*(base+i);
}
}
int Pop()
{
if(size==0)
{
cout<<"Stack Empty,can not pop."<<endl;
}
else
{
int result;
result=*top;
top--;
size--;
return result;
}
}
int Push(int elem)
{
if(size==MAX_SIZE)
{
base=(int*)realloc(base,(stacksize+20)*sizeof(int));
if(!base) exit(-1);
top=base+MAX_SIZE;
stacksize+=20;
}
*top++=elem;
size++;
return 1;
}
bool Empty()
{
return size==0;
}
~Stack()
{
delete []base;
top=NULL;
}
};
超声波引导系统开源(slave工程)
使用IAR打开工程文件 参考文档: 超声波引导系统开源
Java工程师必备的15个java代码
Java工程师必备的15个java代码,附有代码可供查看
数据
结构和算法 —— 栈的简介及用数组实现
一个
栈
数据
结构和算法 —— 栈概念用数组来实现栈创建栈
类
创建
测试
方法打印结果 概念 栈作为一种
数据
结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储
数据
,先进入的
数据
被压入栈底,最后的
数据
在栈顶,需要读
数据
的时候从栈顶开始弹出
数据
(最后
一个
数据
被第
一个
读出来)。来源:[百度百科:栈] 栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH
C语言链表实现
堆栈
(0基础也能学会)
C语言链表实现
堆栈
(小白专场)
数据
结构与算法
一、
数据
结构 1.
数据
描述客观事物的数值、字符,能输入到计算机且被计算机处理的各种符号的集合
数据
就是信息在计算机中的表示 2.
数据
元素
数据
元素是
数据
的基本单位 在计算机程序中,通常把
数据
元素作为
一个
整体进行处理 如: 描述学生信息的一条
数据
记录就是
一个
数据
元素;描述
一个
点坐标的信息就是
一个
数据
元素
数据
元素通常由若干
数据
项组成 3.
数据
对象 一组相同性质的
数据
元素的集合 如: 学校中所有学生的集合就是
数据
对象;平面坐标系中所有点的集合就是
数据
对象 4.
数据
结构 相互之间存在一种或多种特定关
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章