给定程序中,已建立一个带有头结点的单向链表,链表中的各结点包含数据域(data)和指针域(next),数据域为整型。函数fun的作用是:找出链表各结点数据域中的最大值,其最大值由函数值返回。 请在程序的下划线处填入正确的内容并把下划 线删除,使程序

admin2020-06-02  36

问题 给定程序中,已建立一个带有头结点的单向链表,链表中的各结点包含数据域(data)和指针域(next),数据域为整型。函数fun的作用是:找出链表各结点数据域中的最大值,其最大值由函数值返回。
    请在程序的下划线处填入正确的内容并把下划
线删除,使程序得出正确的结果。
    注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)
struct list
{
  int data;
  struct list*next;
};

struct list*createlist (int data[],int n)
{
  struct list*head=0,*p,*q;
  int i;
  head=(struct list*)malloc(sizeof(struct list));
head一>data=data[0];
p=q=head;
for(i=1;i<n;i++)
{
    p=(struct list*)malloc(sizeof(struct list));
    p一>data=data;q一>next=p;q=p;
    }
    p一>next=NULL;
    return head;
}
/*********found*********/
int func(【1】head)
{ int pmax=head一>data;
  struct list*p=head一>next;
  whil e(p!=NULL)
  {if(p一>data>pmax)pmax=p一>data;
/*********found*********/
  p=2】
    }
/*********found*********/
【3】
}

void main()
{
  int data[]={123,21,65,789,  32,  310,  671,  651,81,101},pmax;
  struct list*head;
  head=createlist(data,10);
  pmax=func(head);
  printf("Nax=%d\n”",pmax);
}

选项

答案(1)struct list* (2)p一>next; (3)return pmax;

解析 程序定义了结构体类型list,用来作为链表的结点类型,它包含两个成员:data数据成员,next指针成员。func()函数参数为链表的头结点指针,pmax用来存放最大值,通过while循环遍历整个链表,在遍历的过程中,将当前结点的data与pmax比较,若pmax小于当前结点的data,则使用当前结点的data更新pmax,最后将pmax的值作为函数返回值返回。
转载请注明原文地址:https://kaotiyun.com/show/yqCp777K
0

最新回复(0)