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

admin2018-07-06  33

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

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


//********666********
}
void sList::Del( )
{
sListItem*temp=h;
h=h->next;
deletetemp;
}
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( );
cout;<<"exiting inner block"<<endl;
}
cout;<<"exiting outer block"<
<endl;
writeToFile(" ");
return0;
}

选项

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

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

最新回复(0)