前端之家收集整理的这篇文章主要介绍了
《数据结构》2.6通过一趟遍历找出链表中的最大值,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
/*
设计一个算法,通过一趟遍历,找出链表中的最大元素。
*/
#include<stdio.h>
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
int InitList(LinkList &L){
L=new LNode;
L->next=NULL;
return 1;
}
void CreateList(LinkList &L,int n){
L=new LNode;
L->next=NULL;
struct LNode *r;
r=L;
for(int i=0;i<n;i++){
printf("请输入第%d个元素的值:",i+1);
struct LNode *s;
s=new LNode;
scanf("%d",&s->data);
s->next=NULL;
r->next=s;
r=s;
}
}
//void TraveList(LinkList L){
// struct LNode *p;
// p=L->next;
// while(p){
// printf("%d ",p->data);
// p=p->next;
// }
// printf("\n");
//}
void getMax(LinkList L){
struct LNode *pmax;
pmax=L->next;
struct LNode *p;
p=L->next;
while(p){
if(p->data>pmax->data){
pmax=p;
}
p=p->next;
}
printf("链表最大元素值:%d\n",pmax->data);
}
int main(){
LinkList L;
if(InitList(L)){
printf("链表L初始化成功!\n");
}else{
printf("链表L初始化失败!\n");
}
printf("请输入链表L的长度:");
int n;
scanf("%d",&n);
CreateList(L,n);
//TraveList(L);
getMax(L);
}