( 15 )请将下列栈类 Stack 补充完整class Stack{private:int pList[100]; // int 数组 , 用于存放栈的元素int top; // 栈顶元素 ( 数组下标 )public:Stack():top(0){}void Push(const int &item); // 新元素 item 压入栈int Pop(void); // 将栈顶元素弹出栈};void Stack::Push(const int &item){if(top == 99) // 如果栈满 ,

题目

( 15 )请将下列栈类 Stack 补充完整

class Stack{

private:

int pList[100]; // int 数组 , 用于存放栈的元素

int top; // 栈顶元素 ( 数组下标 )

public:

Stack():top(0){}

void Push(const int &item); // 新元素 item 压入栈

int Pop(void); // 将栈顶元素弹出栈

};

void Stack::Push(const int &item){

if(top == 99) // 如果栈满 , 程序终止

exit(1);

top++; // 栈顶指针增 1

___________;

}

int Stack::Pop(){

if(top<0) // 如果栈空 , 程序终止

exit(1);

return pList[top--];

}


相似考题

1.使用VC6打开考生文件夹下的工程test34_3。此工程包含一个test34_3.cpp,其中定义了表示栈的类stack。源程序中stack类的定义并不完整,请按要求完成下列操作,将程序补充完整。(1)定义类stack的私有数据成员sp和size,它们分别为整型的指针和变量,其中sP指向存放栈的数据元素的数组,size为栈中存放最后一个元素的下标值。请在注释“//**1**”之后添加适当的语句。(2)完成类stack的构造函数,该函数首先从动态存储空间分配含有100个元素的int型数组,并把该数组的首元素地址赋给指针sp,然后将该数组的所有元素赋值为0,并将size赋值为-1(size等于-1表示栈为空)。请在注释“//**2**”之后添加适当的语句。(3)完成类stack的成员函数push的定义。该函数将传入的整型参数x压入栈中,即在size小于数组的最大下标情况下, size自加1,再给x赋值。请在注释“//**3**”之后添加适当的语句。(4)完成类stack的成员函数pop的定义,该函数返回栈顶元素的值,即在size不等于-1的情况下,返回数组中下标为size的元素的值,并将size减1。请在注释“//**4**”之后添加适当的语句。程序输出结果如下:the top elem:1the pop elem:1the stack is empty注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test34_3.cpp清单如下:include<iostream.h>class stack{//** 1 **public:stack ( );bool empty(){return size==-1;}bool full() {return size==99;}void push(int x);void pop();void top();};stack::stack(){//** 2 **for(int i=0; i<100; i++)*(sp+i)=0;size=-1;}void stack::push(int x){//** 3 **cout<<"the stack is full"<<end1;else{size++;*(sp+size) = x;}}void stack::pop(){//** 4 **cout<<"the stack is empty"<<end1;else{cout<<"the pop elem:"<<*(sp+size)<<end1;size--;}}void stack::top(){if iempty() )cout<<"the stack is empty"<<end1;else{cout<<"the top elem:"<<*(sp+size)<<end1;}}void main ( ){stack s;s.push(1);s.top();s.pop();s.top();}

更多“( 15 )请将下列栈类 Stack 补充完整class Stack{private:int pList[100]; // int 数组 , 用于存 ”相关问题
  • 第1题:

    有如下类定义,请将Sample类的拷贝构造函数补充完整。

    class Sample{

    public:

    Sample(){)

    ~Sample(){if(p)delete p;)

    Sample(const Sample& s){

    ______

    }

    void SetData(int data) {p=new int(data);}

    private:

    int*p;

    };


    正确答案:p=new int; p=s.p;
    p=new int; p=s.p; 解析:此题考查的是复制构造函数。复制构造函数定义的一般格式如下:类名::类名(const类名&引用对象名){复制构造函数体)。而在类中的声明部分可省去“类名::”。

  • 第2题:

    4、当利用大小为n的数组顺序存储一个栈时,假定用top==0表示栈空,则向这个栈插入一个元素时,操作为()。

    A.top=top+1; stack[top]=x;

    B.stack[top]=x; top=top+1;

    C.top=top-1; stack[top]=x;

    D.stack[top]=x; top=top-1;


    B 解析:需要保留一个元素为空来标志队头。

  • 第3题:

    以下泛型集合声明中正确的是

    A.class stack<T>{} stack <int> s=new stack<int>();

    B.class stack<T>{} stack <int> s=new stack ();

    C.class stack<T>{} stack s=new stack();

    D.class stack<T>{} stack <int> s=new stack <int>;


    class stack {} stack s=new stack ();

  • 第4题:

    有如下类定义,请将Sample类的拷贝构造函数补充完整。 class Sample { public: Sample(){} ~Sample(){if(p)delete p;} Sample(const Sample&s){ p=new int; *p=___________; } void SetData(int data) {p=new int(data);} void print(){cout<<*p<<endl;} private: int*p; };


    p=new int;p=s.p; p=new int;p=s.p; 解析:此题考查的是复制构造函数。复制构造函数定义的一般格式如下:类名::类名(const类名&引用对象名){复制构造函数体)。而在类中的声明部分可省去“类名::”。

  • 第5题:

    开始往输入串末尾和分析栈stack中放“#”,然后把文法开始符号压栈。预测分析程序总是按_________和________。

    A.stack栈顶符号X 最后的输入符号b

    B.stack栈顶符号X 当前输入符号a

    C.stack栈尾符号X 当前输入符号a

    D.stack栈尾符号X 最后的输入符号b


    stack栈顶符号X、当前输入符号a