首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件pmj3,其中声明了一个单向链表类sList。sList的成员函数Prepend的功能是在链表头部加入一个新的元素。请编写成员函数Prepend。在main函数中给出了一组测试数据,此时程序的输出应为: B->A->
请打开考生文件夹下的解决方案文件pmj3,其中声明了一个单向链表类sList。sList的成员函数Prepend的功能是在链表头部加入一个新的元素。请编写成员函数Prepend。在main函数中给出了一组测试数据,此时程序的输出应为: B->A->
admin
2019-04-24
39
问题
请打开考生文件夹下的解决方案文件pmj3,其中声明了一个单向链表类sList。sList的成员函数Prepend的功能是在链表头部加入一个新的元素。请编写成员函数Prepend。在main函数中给出了一组测试数据,此时程序的输出应为:
B->A->
###
A->
###
A->
###
exiting inner block
exiting outer block
注意:只在函数Prepend的“//********333********”和“//********666********”之间填入若干语句,不要改动程序中的其他内容。
//SList.h
struct sListItem{
char data;
sListTtem*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
#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;
delete temp;
}
void sList::Print()const
{
sListItem*temp=h;
while(temp!=0)
//判断是否到达链表尾部
{
cout <
data << "
-> ";
temp=ernp->next;
}
cout << "\n###" <
}
void sList::Release()
{
while(h!=0)
Del();
}
int main()
{
sList*ptr;
{
sList obj;
obj.Prepend(’A’);
obj.Prepend(’B’);
0bj.Print();
0bj.Del();
obj.Print();
ptr=&obj ;
ptr->Print();
cout<<"exiting inner block"<
}
cout<<"exiting outer block"<
writeToFile(" ");
return 0;
}
选项
答案
SListItem * temp=new SListItem; //动态分配空间给结构体temp的指针temp->data=C: //65 C赋值于结构体temp成员data temp->next=h: //把h赋值于结构temp体成员next h=temp; //把temp赋值给h.即h指向temp指向的空间
解析
主要考查考生对链表的掌握,成员函数Prepend的功能是在链表头部加入一个新元素。形参c是一个char型变量,因此要定义一个新的结构体指针temp,并给它分配sListItem类型空间,把形参c中的值赋给temp的数据域,并使temp通过指针链接到链表上。
转载请注明原文地址:https://jikaoti.com/ti/qYt0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面的函数利用递归实现了求1+2+3+…+n的功能:intsum(intn){if(n==0)return0;elsereturnn+saln(n-1);}在执行SUm(10)的过程中,递归调用s
如下程序的输出结果是______。#include<iostream>usingnamespacestd;intfunl(intx){return++x;}intfun2(int&x){return++x;
有以下程序:#include<iostream>usingnamespacestd;classR{public:R(intr1,intr2){R1=r1;R
以下函数实现的功能是______。voidfun(char*s){char*p,*q,temp;p=s;q=s+strlen(s)-1;while(p<q){temp=*p;*p=*
一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本,此虚函数又称______。
如下函数的作用是以双倍行距输出文件:voiddouble_space(ifstream&f,ofstream&t){charc;while(______){______;if(c==’\n’)t.put(c)
语句int*p=&k;定义了指针p,与这个语句等效的语句序列是
下面的符号中不属于C++关键字的是()。
A、 B、 C、 D、 Dc++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是~Myclass()。
随机试题
关于"夺气"的病因病机描述正确的是
开放式浇注系统适用于浇注()。
改革开放以来,对市场经济认识的重大突破是()
对防止子宫脱垂的发生,最重要的韧带是
某制氢项目对比研究了煤、石油焦、渣油、天然气为原料的生产方案,对制氢装置而言,最符合清洁生产理念的原料路线是()。
根据《中华人民共和国城市房地产管理法》的规定,下列关于该法的基本规定表述中不正确的是()
以下不属于医疗广告内容的是()。
旅游饭店的工作人员在执行职务过程中造成旅客人身和财产的损害,饭店也应承担责任;如果饭店工作人员的损害行为与执行职务无关,则由个人承担侵权责任。()
行政行为无效的法律后果有()。
有如下类定义:classXX{intxdata:public:xx(intn=0):xdata(n){}}classYY:publicXX{intydata;public:
最新回复
(
0
)