Having trouble with SortedList class. Help is greatly appreciated! (different fi
ID: 3623636 • Letter: H
Question
Having trouble with SortedList class. Help is greatly appreciated!(different files in same directory)
public class DLNode
{
double data;
DLNode Prev = null, Next = null;
}
public class SortedList {
private DLNode Head, Tail;
public void insert(double n)
{
//Insert double precision number n into this sorted list.
}
public void listAscending()
{
//List all numbers of the list in ascending order
}
public void listDescending()
{
//List all numbers of the list in descending order
}
}
public class LinkingDemo
{
public static void main(String[] args)
{
SortedList L = new SortedList();
for (int i=0; i<100; ++i)
L.insert(Math.random());
System.out.println(" Numbers in ascending order ");
L.listAscending();
System.out.println(" Numbers in descending order ");
L.listDescending();
}
}
Explanation / Answer
public class SortedList
{
private DLNode Head, Tail;
public void insert(double n)
{
DLNode newNode = new DLNode();
newNode.data = n;
if (Head == null) {
Head = newNode;
Tail = newNode;
}
else {
DLNode current = Head;
while (n > current.data) {
if (current.Next != null)
current = current.Next;
else
break;
}
if (current == Head) { // insert before Head
newNode.Next = Head;
Head.Prev = newNode;
Head = newNode;
}
else if (current == Tail) { // insert after Tail
Tail.Next = newNode;
newNode.Prev = Tail;
Tail = newNode;
}
else { // insert before current
current.Prev.Next = newNode;
newNode.Prev = current.Prev;
newNode.Next = current;
current.Prev = newNode;
}
}
}
public void listAscending()
{
DLNode current = Head;
while (current != null) {
System.out.print(current.data + ",");
current = current.Next;
}
}
public void listDescending()
{
DLNode current = Tail;
while (current != null) {
System.out.print(current.data + ",");
current = current.Prev;
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.