使用数组模拟单链表
题目描述
利用单链表表示一个整数序列,通过一趟遍历在单链表中确定值最大的结点。
输入
多组数据,每组数据有两行,第一行为链表的长度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
源代码
#includeusing 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<



