Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Iterator;
- import java.util.NoSuchElementException;
- class SLLNode<E>{
- E value;
- SLLNode<E> next;
- SLLNode(E value, SLLNode<E> next){
- this.value = value;
- this.next = next;
- }
- }
- class SLL<E>{
- private SLLNode<E> first;
- SLL(){first = null;}
- public void insertFirst(E value) {
- SLLNode<E> prv = new SLLNode<>(value, null);
- first = prv;
- }
- public void insertLast(E value) {
- if(first == null)insertFirst(value);
- else {
- SLLNode<E> dvizi = first;
- while(dvizi.next != null) dvizi = dvizi.next;
- SLLNode<E> nov = new SLLNode<>(value, null);
- dvizi.next = nov;
- }
- }
- public String toString() {
- String s = new String();
- SLLNode<E> dvizi = first;
- while(dvizi != null) {
- s+=dvizi.value+" ";
- dvizi = dvizi.next;
- }
- return s;
- }
- public SLLNode<E> getFirst(){return first;}
- public SLL<E> deleteDuplicates(){
- SLL<E> nova = new SLL<>();
- SLLNode<E> dvizi = first;
- while(dvizi.next != null) {
- if(dvizi.value != dvizi.next.value) {
- nova.insertLast(dvizi.value);
- }
- dvizi = dvizi.next;
- }
- nova.insertLast(dvizi.value);
- return nova;
- }
- }
- public class SLLJoinLists {
- private static SLL<Integer> joinLists(SLL<Integer> list1, SLL<Integer> list2){
- SLL<Integer> spoeni = new SLL<>();
- SLLNode<Integer> dvizi1 = list1.getFirst();
- SLLNode<Integer> dvizi2 = list2.getFirst();
- while(dvizi1 != null || dvizi2 != null) {
- if(dvizi1 != null&&dvizi2 != null) {
- if(dvizi1.value < dvizi2.value) {
- spoeni.insertLast(dvizi1.value);
- dvizi1 = dvizi1.next;
- }else {
- spoeni.insertLast(dvizi2.value);
- dvizi2 = dvizi2.next;
- }
- }else {
- if(dvizi1 != null) {
- spoeni.insertLast(dvizi1.value);
- dvizi1 = dvizi1.next;
- }
- if(dvizi2 != null) {
- spoeni.insertLast(dvizi2.value);
- dvizi2 = dvizi2.next;
- }
- }
- }
- return spoeni;
- }
- public static void main(String[] args) throws IOException {
- BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
- String s = stdin.readLine();
- int N = Integer.parseInt(s);
- s = stdin.readLine();
- String[] pomniza = s.split(" ");
- SLL<Integer> lista1 = new SLL<Integer>();
- SLL<Integer> lista2 = new SLL<Integer>();
- SLL<Integer> spoeni = new SLL<Integer>();
- for (int i = 0; i < N; i++) {
- lista1.insertLast(Integer.parseInt(pomniza[i]));
- }
- s = stdin.readLine();
- N = Integer.parseInt(s);
- s = stdin.readLine();
- pomniza = s.split(" ");
- for (int i = 0; i < N; i++) {
- lista2.insertLast(Integer.parseInt(pomniza[i]));
- }
- spoeni = joinLists(lista1, lista2);
- spoeni = spoeni.deleteDuplicates();
- System.out.println(spoeni.toString());
- }
- }
Add Comment
Please, Sign In to add comment