问题 1052: [编程入门]链表合并
已有a、b兩個(gè)鏈表,每個(gè)鏈表中的結(jié)點(diǎn)包括學(xué)號(hào)、成績(jī)。要求把兩個(gè)鏈表合并,按學(xué)號(hào)升序排列。
輸入第一行,a、b兩個(gè)鏈表元素的數(shù)量N、M,用空格隔開(kāi)。 接下來(lái)N行是a的數(shù)據(jù) 然后M行是b的數(shù)據(jù) 每行數(shù)據(jù)由學(xué)號(hào)和成績(jī)兩部分組成
輸出按照學(xué)號(hào)升序排列的數(shù)據(jù)
樣例輸入 2 3 5 100 6 89 3 82 4 95 2 10 樣例輸出 2 10 3 82 4 95 5 100 6 89分析:首先輸入兩個(gè)鏈表中數(shù)據(jù)的個(gè)數(shù),將學(xué)號(hào)保存再list數(shù)組中,將學(xué)號(hào)和成績(jī)保存再list1鏈表中, 然后將list數(shù)組中的學(xué)號(hào)按照升序排列,循環(huán)數(shù)組中的數(shù)據(jù)
并拆分鏈表中的數(shù)據(jù)獲取學(xué)號(hào),如果有和數(shù)組中的數(shù)據(jù)相同即輸出鏈表中的數(shù)據(jù),由此循環(huán)便可正確輸出。
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
LinkedList<String> list1 = new LinkedList<String>();
int N = in.nextInt();
int M = in.nextInt();
int list[] = new int[N+M];
for(int i=0;i<N+M;i++){
list[i] = in.nextInt();
list1.add(list[i]+" "+in.nextInt());
}
Arrays.sort(list);
for(int i=0;i<list.length;i++){
for(int j = 0;j<list.length;j++){
int a = list[i];
if(a==Integer.parseInt(list1.get(j).split("\\s+")[0])){
System.out.println(list1.get(j));
break;
}
}
}
}
}
轉(zhuǎn)載于:https://www.cnblogs.com/xuesujun/p/11353846.html
總結(jié)
以上是生活随笔為你收集整理的问题 1052: [编程入门]链表合并的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 金庸群侠传的mod怎么安装,安卓版?
- 下一篇: 问题 1066: 2004年秋浙江省计算