以下程序首先建立一条链表,然后按照如下顺序删除链表中的结点:以链表的第一个结点为1号结点开始依次搜索,删除所有序号为3的倍数的结点,即删除第3、6、9、……个结点,当搜索一遍结束后再从链表头部继续此操作,直到链表的结点个数少于3个为止。
程序输出为:
当前链表中的结点依次为:23 12 32 54 74 25 65 94 17 72
第1轮删除的结点为:32 25 17
当前链表中的结点依次为:23 12 54 74 65 94 72
第 2轮删除的结点为:54 94
当前链表中的结点依次为:23 12 74 65 72
……
第 5轮删除的结点为:72
链表中剩余的结点为:23 12
[程序]
#include<iostream.h>structnode{
intdata;
nodenext;
};
nodeInsert(intx,nodehead)
{ nodep;
p=newnode;p->data=x;
p->next=head;returnp;
}
voidfun(nodehead,intn)
{ nodep,p1,q;
inti,num=1;
if(!head)return;while(n>2){
cout<<"当前链表中的结点依次为:";p=head;
while(p){
cout<<p->data<<" ";p=p->next;
}
cout<<endl<<"第 "<<num<<"轮删除的结点为:";p=head;
(1) ;
i=2;while(q){
if(i%3==0){
cout<<q->data<<'/t';
(2) ;
deleteq;
q=p->next;n--;
i++;
}
else{
p=p->next;i++;
(3) ;
}
}
num++;
cout<<endl;
}
cout<<"链表中剩余的结点为:";p=head;
while(p){
cout<<p->data<<"";
(4) ;
}
cout<<endl;
}
voidmain(void)
{
inta[10]={23,12,32,54,74,25,65,94,17,72};
nodehead=0;
for(inti=9;i>=0;i--)
(5) ;
fun(head,10);
}
【要求】
打开T盘中MYFAtxt文件,将其复制到文件myfacpp中(或把上述程序录入到文件myfa.cpp中),根据题目要求及程序中语句之间的逻辑关系对程序进行完善?程序中的注解可以不输入?
完善后的源程序文件myfacpp必须放在T盘的根目录下,供阅卷用?