数据结构c语言版问题,两个,求答案 100
3个回答
展开全部
(1)
#include "stdio.h"
#include <stdlib.h>
#include "time.h"
#define N 10//假设链表长度为10
struct node{//链表结点结构
int x;
struct node *next;
};
int mymax(struct node *p){//返回链表最大值函数
int max;
for(max=(p=p->next)->x;p;p=p->next)
if(max<p->x)
max=p->x;
return max;
}
int main(int argc,char *argv[]){
int i,k;
struct node *p,*head,*q;
srand((unsigned)time(NULL));//初始化伪随机发生器
for(k=i=0;i<=N;i++){
if((q=(struct node *)malloc(sizeof(struct node)))==NULL){//创建新结点
printf("Application memory failure...\n");
return 0;
}
if(i){//为新结点自动赋值
q->x=rand()%100;
printf(++k%10 ? "%3d" : "%3d\n",q->x);
p->next=q;//将新结点接在链表最后
p=p->next;
}
else
p=head=q;//构造头结点不赋值
}
p->next=NULL;//链表结束
printf("\nThe MAX is %d\n",mymax(head));//输出链表中最大值
for(p=head;p;q=p,p=p->next,free(q));//释放链表
return 0;
}
运行样例:
(2)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询