早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请教一道c++设计题。英文的。2.DesignaclassnamedStackOfInteger.Thestackisadatastructurethatholdsdatainalast-in.first-out.ItholdstheIntegerdata.TheUML(UnifiedModelingLanguage)diagramfortheclassisshowninthe

题目详情
请教一道c++设计题。英文的。
2. Design a class named StackOfInteger. The stack is a data structure that holds data in a last-in. first-out. It holds the Integer data. The UML (Unified Modeling Language) diagram for the class is shown in the following figure.
▼优质解答
答案和解析

大概写了段,先给你。

话说你的figure呢?

#include<iostream>
using namespace std;

class StackOfInteger {
private:
int *num;
int size;
int space;  //为Stack分配空间,默认255,可以通过构造函数设定

public:
StackOfInteger();
StackOfInteger(int);
~StackOfInteger();
void push(int);
int pop();
int length();
bool isEmpty();
};

StackOfInteger::StackOfInteger() {
space = 0xff;
size = 0;
num = new int[space];
}

StackOfInteger::StackOfInteger(int space) {
this->space = space;
size = 0;
num = new int[space];
}

StackOfInteger::~StackOfInteger() {
delete num;
}

void StackOfInteger::push(int data) {
num[size++] = data;
}

int StackOfInteger::pop() {
int retval = num[0];
for(int i = 0; i < size - 1; i++)
num[i] = num[i + 1];
return retval;
}

int StackOfInteger::length() {
return size;
}

bool StackOfInteger::isEmpty() {
return size == 0 ? true : false;
}

int main()
{
StackOfInteger soi = StackOfInteger();
cout<<"initi:\t"<<soi.length()<<"\t"<<soi.isEmpty()<<endl;
for(int i = 0; i < 100; i++)
soi.push(i);
cout<<"stored:\t"<<soi.length()<<"\t"<<soi.isEmpty()<<endl;
cout<<soi.pop()<<endl;
cout<<soi.pop()<<endl;
cout<<soi.pop()<<endl;
}