请打开考生文件夹下的解决方案文件proj3,其中声明了一个单向链表类sList。sList的成员函数Prepend的功能是在链表头部加入一个新的元素。请编写成员函数Prepend。在main函数中给出了一组测试数据,此时程序的输出应为: B一>A一

admin2020-04-07  45

问题 请打开考生文件夹下的解决方案文件proj3,其中声明了一个单向链表类sList。sList的成员函数Prepend的功能是在链表头部加入一个新的元素。请编写成员函数Prepend。在main函数中给出了一组测试数据,此时程序的输出应为:
    B一>A一>
    ###
    A一>
    ###
    A一>
    ###
    exiting inner block
    exiting outer block
    注意:只在函数Prepend的"//********333********”和“//********666********”之间填入若干语句,不要改动程序中的其他内容。
    //SList.h
    Struer sListItem{
      char data;
      sListItem * next;
    };
    class sList{
    public:
      sList():h(0){}
    //0表示空链表
      ~SList();
      void Prepend(char c);
    //在链表前端加入元素
      void Del();
    //删除链表首元素
      sListItem * First()const{return h;}
    //返回链表首元素
      void Print()const;
    //打印链表内容
      void Release();
    //销毁链表
    private:
      sListItem * h;
    //链表头
    };
    void writeToFile(const char * );

    //main.cpp
    #include<iostream>
    #include"sLict.h"
    using namespace std;

    sList::~sList()
    {
      Release();
    }
    void sList::Prepend(char c)
    {
      //******** 333 ********


      //******** 666 ********
    }
    void sList::Del()
    {
      sListItem * temp=h;
      h=h一>next;
      delete temp;
    }
    void sList::Print()const
    {
      sListItem * temp=h;
      while(temp!=0)
    //判断是否到达链表尾部
      {
        cout  <<temp  一>data  <<  "一>";
        temp=temp一>next;
      }
      cout:  <<"\n###"  <<endl;
    }
    void sList::Release()
    {
      while(h!=0)
        Del();
    }
    int main()
    {
      sList *ptr;
      {
        sList obj;
        obj.Prepend(’A’);
        obj.Prepend(’B’);
        obj.Print();
        obj.Del();
        obj.Print:();
        ptr=&obj;
        ptr一>Print();
        tout<<"exiting inner block"<<endl;
      }
      cout<<"exiting outer block"<<endl;
      writeToFile("");
      return 0;
    }

选项

答案1 sListItem * temp = new sLlstItem; //动态分配空间给结构体temp的指针 2 temp一>data =c; //把c赋值于结构体temp成员data 3 temp一>next=h; //把h赋值于结构temp体成员next 4 h=temp; //把temp赋值给h,即h指向temp指向的空间

解析 主要考查考生对链表的掌握,成员函数Prepend的功能是在链表头部加入一个新元素。形参c是一个char型变量,因此要定义一个新的结构体指针temp,并给它分配sListItem类型空间,把形参c中的值赋给temp的数据域,并使temp通过指针链接到链表上。
转载请注明原文地址:https://kaotiyun.com/show/9u8p777K
0

最新回复(0)