查找链表中的最大值

使用数组模拟单链表 

题目描述

利用单链表表示一个整数序列,通过一趟遍历在单链表中确定值最大的结点。

输入

多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。

输出

对于每组数据分别输出一行,输出每个链表的最大值。

样例输入 Copy

5
2 1 3 5 4
6
2 3 10 4 5 1
4
-1 -2 -3 -4
0

样例输出 Copy

5
10
-1

源代码

#include <iostream>
using namespace std;
const int N = 1000000+10;
int e[N],ne[N],head,idx;
void init()
{
	head=-1;
	idx=0;
}
void add_to_head(int x)
{
	e[idx]=x;
	ne[idx]=head;
	head=idx++;
}
void insert(int x,int k)
{
	e[idx]=x;
	ne[idx]=ne[k];
	ne[k]=idx++;
}
void remove(int k)
{
	ne[k]=ne[ne[k]];
}
int main()
{
	int n;
	while(cin>>n,n!=0)
	{
		init();
		int maxn=-1e9;
		for(int i = 1;i <= n;i ++ )
		{
			int num;
			cin>>num;
			maxn=max(maxn,num);
			if(i==1)add_to_head(num);
			else insert(num,idx-1);
		}
		cout<<maxn<<endl;
	}
}

猜你喜欢

转载自blog.csdn.net/couchpotatoshy/article/details/123787861