L is the name of a linked list containing integers. Write a JAVA method \"sumGS\
ID: 3696238 • Letter: L
Question
L is the name of a linked list containing integers. Write a JAVA method "sumGS" that returns the sum of those integersin L, which are greater that their successor. Example: if L contained integers (5,3, 8, 10, 2, 4, 8, 6) in this order, then the method sumGS would return 23, which is the sum of elements 5, 10 and 8 (since 5>3 8 10>2 4 8>6). A full java implementation is needed, i.e your code has to start with the method declaration (no class declaration is needed, no imports nor packages either). You can use the JAVA linked list method or assume your own linked list where you have access to the start node.
Explanation / Answer
import java.util.Scanner;
class Node
{
protected int data;
protected Node link;
public Node( )
{
link=null;
data=0;
public Node (int d,Node n)
{
data=d;
link=n;
}
public void setLink(Node n)
{
link=n;
}
public void setData(int d)
{
data=d;
}
public Node getLink()
{
return link;
}
public int getData()
{
return data;
}
}
class linkedList
{
protected Node start;
protected Node end;
public int size;
public linkedList()
{
start=null;
end=null;
size=0;
}
public boolean isEmpty()
{
return start==null;
}
public int getSize()
{
return size;
}
public void insertAtStart(int val)
{
Node nptr=new Node(val,null);
size++;
if(start==null)
{
start=nptr;
end=start;
}
else
{
nptr.setLink(start);
start=nptr;
}
}
public void insertAtEnd(int val)
{
Node nptr=new Node(val,null);
size++;
if(start==null)
{
start=nptr;
end=start;
}
else
{
end.setLink(nptr);
end=nptr;
}
}
public void insertAtPos(int val,int pos)
{
Node nptr=new Node(val,null);
Node ptr=start;
pos=pos - 1;
for(int i=1;i<size;i++)
{
if(i==pos)
{
Node tmp=ptr.getLink();
ptr.setLink(nptr);
nptr.setLink(tmp);
break;
}
ptr=ptr.getLink();
}
size++;
}
public void deleteAtPos(int pos)
{
if(pos==1)
{
start=start.getLink();
size--;
return;
}
if(pos==size)
{
Node s=start;
Node t=start;
while(s!=end)
{
t=s;
s=s.getLink();
}
end=t;
end.setLink(null);
size--;
return;
}
Node ptr=start;
pos=pos-1;
for(int i=1;i<size-1;i++)
{
if(i==pos)
{
Node tmp=ptr.getLink();
tmp=tmp.getLink();
ptr.setLink(tmp);
break;
}
ptr=ptr.getLink();
}
size--;
}
public void sumGS()
{
System.out.print(" Singly Linked List=");
if(size==0)
{
System.out.print("empty ");
return;
}
if(start.getLink()==null)
{
System.out.println(start.getData());
return;
}
Node ptr=start;
int sum=0,max=0,max1=0;
max=start.getData();
ptr=start.getLink();
while(ptr.getLink()!=null)
{
max1=ptr.getData();
if(max1>max)
{
sum=sum+max1;
ptr=ptr.getLink();
max=max1;
}
System.out.print(sum+" ");
}
public void display()
{
System.out.print(" Singly Linked List=");
if(size==0)
{
System.out.print("empty ");
return;
}
if(start.getLink()==null)
{
System.out.println(start.getData());
return;
}
Node ptr=start;
System.out.print(start.getData()+"->");
ptr=start.getLink();
while(ptr.getLink()!=null)
{
System.out.print(ptr.getData()+"->");
ptr=ptr.getLink();
}
System.out.print(ptr.getData()+" ");
}
}
public class SinglyLinkedList
{
public static void main(String[]) args)
{
Scanner scan=new Scanner(System.in);
linkedList list=new linkedList();
System.out.println("Singly Linked List Test ");
char ch;
do
{
system.out.println(" Singly Linked List Operations ");
System.out.println("1.insert at begining");
System.out.println("2.insert at end");
System.out.println("3.insert at position");
System.out.println("4.delete at position");
System.out.println("5.check empty");
System.out.println("6.get size");
System.out.println("7.get total based on condition");
int choice=scan.nextInt();
switch(choice)
{
case1:
System.out.println("Enter integer element to insert");
list.insertAtStart(scan.nextInt());
break;
case2:
System.out.println("Enter integer element to insert");
list.insertAtEnd(scan.nextInt());
break;
case3:
System.out.println("Enter integer element to insert");
int num=scan.nextInt();
System.out.println("Enter position");
int pos=scan.nextInt();
if(pos<=1 // pos>list.getSize())
System.out.println("Invalid position ");
else
list.insertAtPos(num,pos);
break;
case4:
System.out.println("Enter position");
int p=scan.nextInt();
if(p<1 // p >list.getSize())
System.out.println("Invalid position ");
else
list.deleteAtPos(p);
break;
case5:
System.out.pritln("Empty status="+list.isEmpty());
break;
case6:
System.out.println("Size="+list.getSize()+" ");
break;
case7:
list.sumGS();
break;
default:
system.out.println(Wrong Entry ");
break;
}
list.display();
System.out.println(" Do you want to continue (Type y or n) ");
ch=scan.next().charAt(0);
}
while(ch=='Y' // ch=='y');
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.