请打开考生文件夹下的解决方案文件proj2,其中有整数栈类IntList、顺序栈类SeqList和链接栈类LinkList的定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 4 6 3 1 8

admin2020-04-07  37

问题 请打开考生文件夹下的解决方案文件proj2,其中有整数栈类IntList、顺序栈类SeqList和链接栈类LinkList的定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
    4 6 3 1 8
    4 6 3 1 8
    注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动//“****found****”。
    #include<iostream>
    using namespace std;
    class Intstack{  //整数栈类
    public:
      virtual void push(int)=0;
      //入栈
      virtual int pop()=0;
    //出栈并返回出栈元素
        virtual  int  topElement  (  )const=0;
    //返回栈顶元素,但不出栈
      virtual bool isEmpty()const=0;
    //判断是否栈空
    };
    class SeqStack:public IntStack{
      int data[100];  //存放栈元素的数组
      int top;  //栈顶元素的下标
    public:
      //**********found**********
      SeqStack():___________{}//把top初始化为一1表示栈空
      void push(int:n){data [++top ]=n;}
      //**********found**********
      int pop(){return______;}
      int topElement()const{  return data[top];}
      bool isEmpty()const(return top=-1;)
    };
    struct Node{
      int data;
      Node * next;
    };
    class LinkStack:public IntStack{
      Node * top;
    public:
    //********** found **********
      LinkStack():_______{)
    //把top初始化为NULL表示栈空
      void push(int n){
        Node * p=new Node;
        p—>data=n;
    //********** found **********
        ___________;
        top=p;
      }
      int pop(){
        int d=top—>data;;
        top=top—>next;
        returyl d;
      }
      int topElement()const{return top一>data;}
      bool isEmpty()const{return top==NULL;}
    };
    void pushData(IntStack &st){
      st.push(8);
      st.push(1);
      st.push(3);
      st.push(6);
      st.push(4);
    }
    void popData(IntStack &st){
      while(!st.isEmpty())
        cout<<st.pop()<<";
    }
    int main(){
      SeqStack st1; pushData(st1);popData(st1);
      cout<<endl;
      LinkStack st2;pushData(st2);popData(st2);
      cout<<endl;
      retumR 0;
    }

选项

答案(1)top(一1) (2)data[top--] (3)top(NULL) (4)p一>next=top

解析 (1)主要考查考生对构造函数的掌握情况,先看语句注释:把top初始化为一1表示栈空,即要把top赋值为一1即可。
    (2)主要考查考生对纯虚函数的掌握情况,先看纯虚函数在基类的注释:出栈并返回出栈元素。要返回栈顶元素可以通过data[top]得到,出栈同时要使得top往下移动,即top--。
    (3)主要考查考生对构造函数的掌握情况,先看语句注释:把top初始化为NuLL表示栈空,因此使用成员列表初始化直接把top赋值为NULL即可。
    (4)主要考查考生对栈的掌握,push为入栈函数,top指向栈顶元素,因此新添加的指针的next要指向top,即p一>next=top;。
转载请注明原文地址:https://jikaoti.com/ti/iPA0FFFM
0

最新回复(0)