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

admin2022-04-02  47

问题 给定程序中,已建立一个带有头结点的单向链表,链表中的各结点包含数据域(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;
  while(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("Max=%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/6hkp777K
0

最新回复(0)