三、综合应用题
使用VC++6.0打开考生文件夹下的源程序文件3.cpp,阅读下列程序说明和代码,功能如下:
从屏幕输入数字,然后由大到小插入到指定的链中。当输入0时,表示输出的数据已经输入完成,把数据打印到屏幕,并释放内存。
其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)在父结点的Next中保存新插入的结点的指针,请在注释1后添加适当的语句。
(2)把pNext的子结点赋给pNext本身,请在注释2后添加适当的语句。
(3)判定P的子结点不为空,如果不为空,则打印P中的数据到屏幕,请在注释3后添加适当的语句。
(4)用t1保存动态申请内存结点的链表头,请在注释4
后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数
main与其他函数中的任何内容。
试题程序:
#include
classTC
{
public:
TC(intdata=O)
{
this->data=data;
this->next=NULL;
}
intdata;
TC*next;
};
voidInsert(TC*P,intdata)
{
TC*temp=newTC(data);
TC*pParent=P:
TC*pNext=p-)next:
while(pNext)
{
if(data>pNext->data)
{
//********1********
temp->next=pNexti
return;
}
else
{
pParent=pNext;
//********2********
}
}
if(pNext==NULL)
{
pParent->next=temp;
return;
}
}
voidprintf(TC*p)
{
//********3********
while()
{
cout
P=P->next;
}
cout< }
voidDelete(TC*p)
{
//********4********
TC*t1=;
TC*t2;
while(t1!=NULL)
{
t2=t1->next:
deletetl;
t1=t2:
}
}
voidmain()
{
inti=0;
TChead:
do
{
intdata;
cout<<"请输入一个数字:"< cin>>data;
if(data==O)break;
Insert(&head,data);
}while(1);
printf(&head);
Delete(&head):
return;
}
}
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |