#include <stdio.h>
#include <stdlib.h>
#define N 8
struct slist
{
double s;
struct slist *next;
};
typedef struct slist STREC;
double fun( STREC *h )
{
int i;
double max;
for(i=0;i<N;i++)
{
h=h->next;
if(max<(h->s)) max=(h->s);
};
return max;
}
STREC *creat( double *s) //定义返回值为 STREC类型的 地址 形参为指向实型的指针
{
STREC *h,*p,*q; //定义三个指向STREC型的指针
int i=0;
h=p=(STREC*)malloc(sizeof(STREC)); //动态分配STREC型大小空间首地址赋给 h、p 头结点
p->s=0; //头结点数据域 为 0
while(i<N)
{
q=(STREC*)malloc(sizeof(STREC)); // 动态分配 size 空间 首地址赋给q
q->s=s[i];
i++;
p->next=q; // 建立连接 把后一个节点的地址赋给直接前驱的指针域
p=q; // p后移
}
p->next=0; //尾节点 的指针域赋为空
return h; //返回头节点的地址
}
outlist(STREC *h) // 带入头指针 打印链表
{
STREC *p;
p=h->next;
printf("head");
do
{
printf("->%2.0f",p->s);
p=p->next;
}
while(p!=0);
printf("\n\n");
}
main()
{
double s[N]={85,76,69,85,91,72,64,87}, max;
STREC *h;
h=creat(s);
outlist(h);
max=fun(h);
printf("max=%6.1f\n",max);
}
利用creat创建链表 利用outlist打印链表 利用 fun 函数 返回链表中最大的值
最新推荐文章于 2023-10-28 01:25:49 发布