请打开考生文件夹下的解决方案文件proj2,该工程中含有一个源程序文件proj2.cpp,请将堆栈类的定义补充完整。使程序的输出结果为: The element of stack are:4 3 2 1 注意:请勿修改主函

admin2020-04-07  27

问题 请打开考生文件夹下的解决方案文件proj2,该工程中含有一个源程序文件proj2.cpp,请将堆栈类的定义补充完整。使程序的输出结果为:
    The element of stack are:4    3    2    1
    注意:请勿修改主函数main和其他函数中的任何内容,只在横线处编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//**** found ****”。
    //proj2.cpp
    #include  <iostream>
    using namespace std;
    const int size=5;
    class Stack;
    class Item
    {
    public:
    //******** found ********
        Item(const int&Val):_________{}  //构造函数  对item进行初始化
    private:
      int item;
      Item *next;
      friend class Stack;
    };
    class Stack
    {
    public:
      Stack():top(NULL){}
      ~Stack();
      int Pop();
      void Push(const int&);
    private:
      Item * top;
    };
    Stack::~Stack()
    {
      Item * p=top,*q;
      while(p!=NULL)
      {
      q=p一>next;
    //******** found ********
      _________;  //释放p所指向的节点
      p=q;
      }
    }
    int Stack::Pop()
    {
      Item* temp;
      int ret;
    //******** found ********
      __________;  //使temp指向栈顶节点
      ret=top一>item;
      top=top一>next;
      delete temp;
      return ret;
    }
    void Stack::Push(const  int& val)
    {
      Item * temp=new Item(val);
    //******** found ********
        __________;
   //使新节点的next指针指向栈顶数据
        top=temp;
    }
    int main()
    {
      Stack s;
      for(int i=1; i<Size;i++)
        s.Push(i);
      cout<<"The element of stack are:";
      for(i=1;i<Size; i++)
        cout<<S.Pop()<<’\t’;
      return 0;
    }

选项

答案(1)item(val) (2)delete[]p (3)temp=top (4)temp一>next=top

解析 (1)主要考查构造函数,对私有成员进行初始化,即item(val)。
    (2)主要考查使用delete语句释放指针,一般格式为:delete[]+指针。
    (3)指向栈顶节点的是top指针,要使temp指向栈顶节点,故使用语句temp=top;。
    (4)指向栈顶节点的是top指针,要使新节点的next指针指向栈顶数据,故使用语句temp一>next=top;。
转载请注明原文地址:https://kaotiyun.com/show/Zw8p777K
0

最新回复(0)