请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中有整数栈类IntList、顺序栈类SeqList和链接栈类LinkList的定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:

admin2021-06-10  23

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中有整数栈类IntList、顺序栈类SeqList和链接栈类LinkList的定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
    4 6 3 1 8
    4 6 3 1 8
    注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动//“****found****”。
1  #include
2   using namespace std;
3   class IntStack{//整数栈类
4   public:
5   virtual void push(int)=0;//入栈
6  virtual int pop()=0;
7   //出栈并返回出栈元素
8  virtual int topElement()const=0 ;
9   //返回栈顶元素,但不出栈
10   virtual bool isEmpty()const=0;
11   //判断是否栈空
12   };,
13   class SeqStack:public IntStack{
14  int data[100];  //存放栈元素的数组
15   int top;  //栈顶元素的下标
16   public:
17   //**********found**********
18    SeqStack():______{}//把top初始化为-1表示栈空
19   void push(int n){data[++top]=
20   n;}
21    //**********found**********
22    int pop(){return_______;}
23    int topElement()const{return data[top];}
24   bool isEmpty()const{return top=-1;}
25   };
26   struct Node{
27  int data;
28  Node*next;
29   };
30  class LinkStack:public IntStack{
31   Node*top;
32    public:
33   //**********found**********
34    LinkStack():_____{}//把top初始化为NULL表示栈空
35  void push(int n){
36    Node*p=new Node;
37    p->data=n;
38   //**********found**********
39    ______;
40    top=p;
41    }
42    int pop(){
43    int d=top->data;;
44    top=top->next;
45    return d;
46    }
47    int topElement()const{return top->data;}
48   bool isEmpty()const{return top==NULL;}
49  };
50   void pushData(IntStack&st){
51  st.push(8);
52  st.push(1);
53  st.push(3);
54  st.push(6);
55    st.push(4);
56  }
57  void popData(IntStack&st){
58    while(!st.isEmpty()}
59    cout<60  }
61  int main(){
62    SeqStack st1;pushData(st1);pop-Data(st1);
63    cout<64   LinkStack st2;pushData(st2);pop-Data(St2);
65    cout<66    return 0;
67    }

选项

答案(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/CVh0FFFM
0

最新回复(0)