兩個有序連結串列序列的合併(java實現)
02-線性結構1 兩個有序連結串列序列的合併(15 分)
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。
函式介面定義:
List Merge( List L1, List L2 );
輸入樣例:
3
1 3 5
5
2 4 6 8 10
輸出樣例:
1 2 3 4 5 6 8 10
NULL
NULL
思路:
1、兩個連結串列,比較元素大小之後指標後移,最後把某個連結串列剩餘的元素新增進來。
2、就不輸出null null了。
import java.util.Iterator; import java.util.LinkedList; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub LinkedList<Integer> L1 = new LinkedList<>(); LinkedList<Integer> L2 = new LinkedList<>(); Scanner in = new Scanner(System.in); int n1 = in.nextInt(); for(int i = 0 ;i<n1;i++) { L1.add(in.nextInt()); } int n2 = in.nextInt(); for(int i = 0 ;i<n2;i++) { L2.add(in.nextInt()); } LinkedList<Integer> Lt = merge( L1, L2); System.out.println(Lt); } public static LinkedList<Integer> merge(LinkedList<Integer> L1,LinkedList<Integer> L2) { Iterator<Integer> it1 = L1.iterator(); Iterator<Integer> it2 = L2.iterator(); LinkedList<Integer> L3 = new LinkedList<>(); int n1 = L1.size(); int n2 = L2.size(); // System.out.println(n1+" "+n2); Integer m1=0,m2=0; if(it1.hasNext()) m1 = it1.next(); if(it2.hasNext()) m2 = it2.next(); for(int i = 1,j = 1 ; i<=n1&&j<=n2 ; ) { switch(compare(m1,m2)) { case 1 : { L3.add(m2); j++; if(it2.hasNext()) m2=it2.next(); }; break; case -1: { L3.add(m1); i++; if(it1.hasNext()) m1=it1.next(); }; break; case 0 :{ L3.add(m1); L3.add(m2); i++; j++; if(it1.hasNext()) m1=it1.next(); if(it2.hasNext()) m2=it2.next(); }; break; default: break; } } if(it1.hasNext()) { L3.add(m1); while(it1.hasNext()) { L3.add(it1.next()); } } else { L3.add(m2); while(it2.hasNext()) { L3.add(it2.next()); } } return L3; } private static int compare(Integer m1, Integer m2) { // TODO Auto-generated method stub if(m1>m2) return 1; else if(m1==m2) return 0; else return -1; } }
相關推薦
PTA資料結構題程式設計題7-51 兩個有序連結串列序列合併
已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。輸入格式:輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−表示序列的結尾(−不屬於這個序列)。數字用空格間隔。輸出格式:在一行中輸出合併後新的非降序連結串列,數字間用空
7-3 兩個有序連結串列序列的合併 (20 分)
7-3 兩個有序連結串列序列的合併 (20 分) 已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。 輸出格
6-1 兩個有序連結串列序列的合併 (15 分)
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node PtrToNode; struct Node
MOOC陳越資料結構第二週02-線性結構1 兩個有序連結串列序列的合併 (15 分)
首先讀題,題目中說L1,L2都為含頭節點的,第一次做的時候沒有認真讀題以為不帶頭節點,傳出的連結串列也要求帶頭節點。 程式碼 List Merge(List L1,List L2){ List pa,pb,pc,L; L = (List)malloc(si
7-2 兩個有序連結串列序列的合併 (20 分)
已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−表示序列的結尾(−不屬於這個序列)。數字用空格間隔。 輸出格式: 在一行中輸出合併後新的非降序連結串列,數字間用空格分開,結尾不能有
兩個有序連結串列序列的合併 (20 分)
7-90 兩個有序連結串列序列的合併 (20 分) 已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數
PTA 02-線性結構1 兩個有序連結串列序列的合併 (15 分)
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node *PtrToNode; struc
6-2 兩個有序連結串列序列的合併 (14 分)
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node PtrToNode; struct Node { E
兩個有序連結串列序列的合併(java實現)
02-線性結構1 兩個有序連結串列序列的合併(15 分)本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。函式介面定義:List Merge( List L1, List L2 );輸入樣例:3 1 3 5 5 2 4 6 8 10 輸出樣例:
兩個有序連結串列序列的合併(15 分)
#include <stdio.h> #include <stdlib.h> typedef int ElementType; typedef struct Node *Pt
7-51 兩個有序連結串列序列的合併(20 分)
題目: 已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。 輸出格式: 在一
5-51 兩個有序連結串列序列的合併(20分)
已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2的並集新非降序連結串列S3。輸入格式:輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用-1−1表示序列的結尾(-1−1不屬於這個序列)。數字用空格間隔。輸出格式:在一行中輸出合併後新的非降序連結串列,數
資料結構-線性表- 01 “兩個有序連結串列序列的合併” 問題
題目要求: 本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node *PtrToNode; struc
PTA 兩個有序連結串列序列的交集 (很簡單 不是用連結串列做的)
兩個有序連結串列序列的交集 (20 分) 已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2的交集新連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。 輸出格式:
[資料結構]02-線性結構1 兩個有序連結串列序列的合併
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node *PtrToNode; struct Nod
【問題求教】7-2 兩個有序連結串列序列的交集 (20 分)
已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2的交集新連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。 輸出格式: 在一行中輸出兩個輸入序列的交集序列
兩個有序連結串列序列的合併
已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個
線性表——兩個有序連結串列序列的合併
已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。 輸出格式: 在一行中輸出合併後新的非降序連結串列,數字間
【浙大資料結構題集】習題2.5 兩個有序連結串列序列的合併
題目連結 題意:兩個有序連結串列的合併,輸出的合併後的非遞減連結串列。 思路:主要是輸入和合並兩個函式,輸入用的尾插法,合併則是一一比較,複雜度O(m+n). 程式碼: #include <
mooc浙大資料結構02-線性結構1 兩個有序連結串列序列的合併
題目:02-線性結構1 兩個有序連結串列序列的合併(15 分)本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。函式介面定義:List Merge( List L1, List L2 ); 其中List結構定義如下:typedef struct