请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明了一个单向链表类sLst。sList的成员函数Prepend的功能是在链表头部加入一个新的元素。请编写成员函数Pepend。在main函数中给出了一组测试数据,此时程序的输出

admin2017-02-21  47

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明了一个单向链表类sLst。sList的成员函数Prepend的功能是在链表头部加入一个新的元素。请编写成员函数Pepend。在main函数中给出了一组测试数据,此时程序的输出应为:
    B->A->
    ###
    A->
    ###
    A->
    ###
    exiting inner block
    exiting outer block
    注意:只在函数Prepend的“********333********”和“********666********”之间填入若干语句,不要改动程序中的其他内容。
//SLiSt.hstruct sListItem{
  char data;
  sListItem * next;
};
class sList{public:
  sList():h(0){}//0表示空链表
  ~sList();
  void Prepend(char c);//在链表前端加入元素
  void Del();//删除链表首元素
  sListItem * First()const{Eeturn h;)//返回链表首元素
  void Print()const;//打印链表内容
  void Release();//销毁链表
private:
  sListItem * h;//链表头
},
void writeToFile(const char * );
//main.cpp
#include<iostream>
#include"sList.h"
suing namespace std;
sList∷~sList()
{
  Release();
}
void sList∷Prepend(char c)
{
    //********333********
    //********666********
}
void sList∷Dei()
{
  sListltem * 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###"<<end1;
}
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"<<end1;
    }
    cout<<"exiting outer block"<<
end1;
  writeToFile("");
  return 0;
  }

选项

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

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

最新回复(0)