In: Computer Science
The file has some functions incomplete/empty. Please read the
description from each of those functions and add your code to
complete.
You also need to test those functions in the main().
ListDemoHw.java
package hw;
public class ListDemoHw {
public static void
printLinkedList(SLLNode<Integer> node) {
// display all elements in the
linked list
while(node != null) {
System.out.print(node.info + " ");
node =
node.next; // move to the next node
}
System.out.println();
}
static SLLNode<Integer> generateLL1() {
// Create/return a linked list that
has {3, 4, 1, 2}
// Note that this is not quite a
useful function. Just for practice purpose
}
static SLLNode<Integer> generateLL2(int a, int
b) {
// Create/return a linked list that
has {a, b, a, b}
// eg) generateLL2(10,20) returns a
list {10,20,10,20}
}
static SLLNode<Integer>
generateLL_with_array(int[] nums) {
// Creat/return a linked list using
the given int array
// Return null if the array is
empty (size is zero).
// eg) generateLL3(new
int[]{2,3,4}) returns a list {2,3,4}
}
static void attach(SLLNode<Integer> ls1,
SLLNode<Integer> ls2) {
// Given two linked lists, attach
the second list at the end of the first list
// eg) Suppose ls1={1,2,3},
ls2={50,60} as lists, attach(ls1, ls2) makes ls1 =
{1,2,3,50,60}
// Assume ls1 is not empty.
// Hint: You need to go to the last
node of ls1 and make a connection from it to the ls2
}
public static void main(String[] args) {
printLinkedList(generateLL1()); //
3 4 1 2
printLinkedList(generateLL2(20,30)); // 20 30 20 30
printLinkedList(generateLL_with_array(new int[] {2})); // 2
printLinkedList(generateLL_with_array(new int[] {2,3,4,5})); // 2 3
4 5
SLLNode<Integer> ls1 =
generateLL1();
attach(ls1,generateLL2(20,30));
printLinkedList(ls1); // 3 4 1 2 20
30 20 30
}
}
SLLNode.java to test
package hw;
public class SLLNode<E> {
E info;
SLLNode<E> next;
public SLLNode(E val) {
info = val;
next = null;
}
}
code
package hw;
public class SLLNode {
int info;
SLLNode next;
public SLLNode(int val) {
info = val;
next = null;
}
}
ListDemoHw.java
package hw;
public class ListDemoHw {
public static void printLinkedList(SLLNode node) {
// display all elements in the linked list
while(node != null) {
System.out.print(node.info + " ");
node = node.next; // move to the next node
}
System.out.println();
}
static SLLNode generateLL1() {
SLLNode head=new SLLNode(3);
head.next=new SLLNode(4);
head.next.next=new SLLNode(1);
head.next.next.next=new SLLNode(2);
return head;
}
static SLLNode generateLL2(int a, int b) {
SLLNode head=new SLLNode(a);
head.next=new SLLNode(b);
head.next.next=new SLLNode(a);
head.next.next.next=new SLLNode(b);
return head;
}
static SLLNode generateLL_with_array(int[] nums) {
SLLNode head=null;
for(int i=0;i<nums.length;i++)
{
SLLNode newNode=new SLLNode(nums[i]);
if(head==null)
head=newNode;
else
{
SLLNode temp=head;
while(temp.next!=null)
{
temp=temp.next;
}
temp.next=newNode;
}
}
return head;
}
static void attach(SLLNode ls1, SLLNode ls2) {
// Given two linked lists, attach the second list at the end of the
first list
// eg) Suppose ls1={1,2,3}, ls2={50,60} as lists, attach(ls1, ls2)
makes ls1 = {1,2,3,50,60}
// Assume ls1 is not empty.
// Hint: You need to go to the last node of ls1 and make a
connection from it to the ls2
SLLNode temp=ls1;
while(temp.next!=null)
{
temp=temp.next;
}
temp.next=ls2;
}
public static void main(String[] args) {
printLinkedList(generateLL1()); // 3 4 1 2
printLinkedList(generateLL2(20,30)); // 20 30 20 30
printLinkedList(generateLL_with_array(new int[] {2})); // 2
printLinkedList(generateLL_with_array(new int[] {2,3,4,5})); // 2 3
4 5
SLLNode ls1 = generateLL1();
attach(ls1,generateLL2(20,30));
printLinkedList(ls1); // 3 4 1 2 20 30 20 30
}
}
output
If you have any query regarding the code please ask me in the comment i am here for help you. Please do not direct thumbs down just ask if you have any query. And if you like my work then please appreciates with up vote. Thank You.