赞
踩
描述
利用单链表表示一个整数序列,利用递归的方法求出单链表中整数的最大值。
输入
多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。
输出
对于每组数据分别输出一行,输出每个链表的最大值。
输入样例 1
- 4
- 1 2 3 4
- 5
- -1 2 39 2 3
- 0
输出样例 1
- 4
- 39
- #include <iostream>
- #include<iomanip>
- using namespace std;
- #define MAXSIZE 10000
-
- typedef struct LNode
- {
- int data;
- struct LNode *next;
- }LNode,*LinkList;
-
- void InitList(LinkList &L)
- {
- L=new LNode;
- L->next=NULL;
- return;
- }
-
- void CreateList_R(LinkList &L,int n)
- {
- LinkList r,p;int i=0;
- L=new LNode;
- L->next=NULL;
- r=L;
-
- //int n;
- //cin>>n;
-
- while(1)
- {
- p=new LNode;
- cin>>p->data;
-
- p->next=NULL;
- r->next=p;
- r=p;
- i++;
- if(i==n) break;
- }
- return;
- }
-
- int ListLength(LinkList L)
- {
- LinkList p;
- p=L->next; //p指向第一个结点
- int i=0;
- while(p){//遍历单链表,统计结点数
- i++;
- cout<<p->data<<endl;
- p=p->next;
- }
- return i;
- }
-
- int Max(LinkList p)
- {
- int max;
- if(p->next==NULL)
- return p->data;
- else
- {
- max=Max(p->next);
- return p->data>=max?p->data:max;
- }
- }
-
- int main()
- {
- LinkList L;int n;
- InitList(L);
- while(1)
- {
- cin>>n;
- if(n==0)break;
- CreateList_R(L,n);
- cout<< Max(L->next)<<endl;
- }
- return 0;
- }
附:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。