Can someone implement this using singly linked list. Please and thank you
public interface PriorityQueueInterface<T extends
Comparable<T>>
{
/** * Adds a new entry to this priority queue * @param newEntry An
object to be added. */
void add(T newEntry);
/** Removes and returns the entry having the highest priority. *
@return Either the object having the highest priority or, if the
priority * queue is empty before the operation, null. */
T remove();
/** Retrieves the entry having the highest priority. * @return
Either the object having the highest priority or, if the priority *
queue is empty, null. */
T peek();
/** Detects whether this priority queue is empty. * @return True if
the priority queue is empty, or false otherwise. */
boolean isEmpty();
/** Gets the size of this priority queue * @return The number of
entries currently in the priority queue. */
int getSize();
/** Removes all entries from this priority queue. */
void clear(); }
Structure
typedef struct node {
int data;
int priority; // Low values means
higher priority
struct node* next;
} Node;
Add
Node* newNode(int d, int p)
{
Node* t= (Node*)malloc(sizeof(Node));
t->data = d;
t->priority = p;
t->next = NULL;
return t;
}
void push(Node** head, int d, int p)
{
Node* start = (*head);
Node* temp = newNode(d, p);
if ((*head)->priority > p) { // if head has less priority than new node
temp->next = *head;
// Insert New Node before head
(*head) = temp;
}
else {
// Traverse to find position to insert new node
while (start->next != NULL &&
start->next->priority < p) {
start = start->next;
}
temp->next = start->next;
start->next = temp;
}
}
Remove
// Remove the highest priority and return
Node* remove(Node** head)
{
Node* temp = *head;
(*head) = (*head)->next;
return temp;
}
PEEK
int peek(Node** head)
{
return (*head)->data; }
isEmpty
boolean isEmpty(Node** head){
if (head) return 1;
else return 0;
}
GETSIZE
int getSize(Node** head){
Node* start = (*head); int c=1;
while (start->next != NULL ) {
start = start->next; c++;
} return c;
}
CLEAR
//clear all values
void clear(Node** head){
Node* start = (*head);
while (start->next != NULL ) {
Node *t=start;
start = start->next; free(t);
} *head=NULL;
}
Can someone implement this using singly linked list. Please and thank you public interface Priori...
Given a singly-linked list interface and linked list node class, implement the singly-linked list which has the following methods in Java: 1. Implement 3 add() methods. One will add to the front (must be O(1)), one will add to the back (must be O(1)), and one will add anywhere in the list according to given index (must be O(1) for index 0 and O(n) for all other indices). They are: void addAtIndex(int index, T data), void addToFront(T data), void addToBack(T...
Java - data structures Suppose that in the array-based stack, the array doubles in size after multiple push operations. But later on, fewer than half of the array’s locations might actually be used by the stack due to pop operations. Revise the implementation so that its array also can shrink in size as objects are removed from the stack. Accomplishing this task will require two new private methods, as follows: The first new method checks whether we should reduce the...
Java. Must not use Java API java.util.Stack /** A class of stacks whose entries are stored in an array. Implement all methods in ArrayStack class using resizable array strategy, i.e. usedoubleArray() Must throw StackException during exception events in methods: peek(), pop(), ArrayStack(int initialCapacity) Do not change or add data fields Do not add new methods */ import java.util.Arrays; public class Arraystack«Т> implements Stack!nterface«T> private TI stack;// Array of stack entries private int topIndex; /7 Index of top entry private static...
JAVA PROGRAMMING You are given an interface PriorityQueue (the source code is at the end of this document) that specifies the protocols for a priority queue with generic values and priorities, where the priorities are discretely ordered rather than comparable. Implement the class ListofQueuesPQ implements PriorityQueue to fulfill the requirements of the interface (see the Javadoc in the interface’s source code). Use an ListofQueues in order to fulfill the needs of the interface. You will need to make sub-classes within...
JAVA PROGRAMMING You are given an interface PriorityQueue (the source code is at the end of this document) that specifies the protocols for a priority queue with generic values and priorities, where the priorities are discretely ordered rather than comparable. Implement the class ArrayListPQ implements PriorityQueue to fulfill the requirements of the interface (see the Javadoc in the interface’s source code). Use an ArrayList in order to fulfill the needs of the interface. For each constructor and method in your...
In this lab, we will implement the Linked Bag. The bag will contain a sequence of strings. First, you need to design the Node class (Node.java). It will contain an integer data and a reference to thenext Node. The constructor of Node class receives an integer and assigns it to the data field. It also has a default constructor. Data Next Node Then we will design another class named LinkedBag (LinkedBag.java). LinkedBag class has an instance variable called firstNode of...
Problem 3 (List Implementation) (35 points): Write a method in the DoublyLList class that deletes the first item containing a given value from a doubly linked list. The header of the method is as follows: public boolean removeValue(T aValue) where T is the general type of the objects in the list and the methods returns true if such an item is found and deleted. Include testing of the method in a main method of the DoublyLList class. ------------------------------------------------------------------------------------- /** A...
Implement the EasyStack interface with the MyStack class. You can use either a linked list or a dynamic array to implement the data structure. A stack is a specialised form of list in which you can only get and remove the element most recently added to the stack. The class should be able to work with the following code: EasyStack stack = new MyStack(); NB: You cannot import anything from the standard library for this task. The data structure must...
Java. Must not use Java API java.util.Stack /** A class of stacks whose entries are stored in an array. Implement all methods in ArrayStack class using resizable array strategy, i.e. usedoubleArray() Must throw StackException during exception events in methods: peek(), pop(), ArrayStack(int initialCapacity) Do not change or add data fields Do not add new methods */ import java.util.Arrays; public class Arraystack«Т> implements Stack!nterface«T> private TI stack;// Array of stack entries private int topIndex; /7 Index of top entry private...
Load to the IDEA the remaining classes from the provided Lab02.zip file. Repeat the previous project inside the ArraySetWithArray class. As shown in the UML diagram below ArraySetWithArray class does not utilize ResizableArrayBag object as its instance variable, it has setOfEntries defined as an array which should be dynamically resized if more room needed (double the size). displaySet method should check if the set is empty and display appropriate message; if the set is not empty should display the number...