使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。该程序从键盘读入整数,并按从大到小的顺序输出输入整数中互不相等的那些整数。程序一边读入整数,一边构造一个以大到小顺序链接的链表,直至输入0时结束。然后顺序输

admin2017-09-20  29

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。该程序从键盘读入整数,并按从大到小的顺序输出输入整数中互不相等的那些整数。程序一边读入整数,一边构造一个以大到小顺序链接的链表,直至输入0时结束。然后顺序输出链表上各表元的整数值。主函数每读入一个整数,就调用函数fun(),函数fun()将还未出现在链表上的整数按从大到小的顺序插入到链表中。为了插入方便,链表在表首有一个辅助表元。
    注意:不能修改程序的其他部分,只能修改fun()函数。
#include
class NODE
{
public:
    int data;
    NODE*nexl;
};
void fun(NODE*list,int x)
{
}
void main()
{
    int x;
    NODE*head,*P;
/*首先建立只有辅助表元的空链表*/
    head=new NODE;
    head->next=NULL;
    std::couL<<“Enter integers,
end with 0”<    while(1)
    {
    std::cin>>x;
    if(  x==0)
    break;
    fun(head,x);
    }
    for(P=head一>next;P!=NULL;
p=p一>next)
    std::cout<data<<‘’;
    std::cout<    do {
    p=head一>next;
    delere head;
    head=P;
    }while(P);
}

选项

答案NODE*u,*v,*p; u=list; v=u一>next; while(v!=NULL&&Xdata) //寻找插入的位置 { u=v; v=v->next; } if(v==NULL ‖X>v一>data) //判断是否为新的元素 { p=new NODE; P一>data=x; //生成新的元素 P一>next=v: u->next=p; //插入新的元素 }

解析 (1)该程序功能是构造一个以大到小顺序链接的链表。它的解题思路,首先寻找插入的位置,然后判断是否为新元素,最后插入。
(2)从己给部分源程序的main主函数开始入手.核心函数void fun(NODE*list,int x)中的list参数为单链表,x为要插入的数据。
转载请注明原文地址:https://kaotiyun.com/show/BTAp777K
0

最新回复(0)