Weighted Graph:
A graph is termed as weighted graph if each edge of the graph is assigned a weight. The weighted edges stored in the weighted graphs can be stored in adjacency lists.
Weighted edges can be represented using a two-dimensional array. An weighted edge can be represented as “WeightedEdge(u,v,w)”, where “u” and “v” are edges and “w” represents the weight between them.
Example of storing edge in a weighted graph:
Object[][] edges =
{ new Integer(0), new Integer(1), new SomeTypeForWeight(8) };
Nine Tails
In Nine Tails Program, nine coins are placed in a 3*3 matrix, where some coins are face up and others face down, in which a legal move is to take any coin that is face up and reverse it together with the coins adjacent to it. One needs to find the minimum numbers of moves that leads to all coins being face down.
The Nine Tails program can be reduced to the shortest path problem.
The tree data field in NineTailModel is defined protected:
protected UnweightedGraph<Integer>.SearchTree tree;
Want to see the full answer?
Check out a sample textbook solutionChapter 29 Solutions
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
- Implement Two Way Linked List The MyLinkedList class is a one-way directional linked list that enables one-way traversal of the list. MyLinkedList.java is attached below. Modify the Node class to add the new field named previous to refer to the previous node in the list, as follows: public class Node <E> { E element; Node<E> next; Node<E> previous; public Node(E e) { element = e; } } Implement a new class named MyTwoWayLinkedList that uses a double linked list to store elements. The MyLinkedList class in the text extends MyList. Define MyTwoWayLinkedList to extend the java.util.AbstractSequentialList class. You can find methods of AbstractSequentialList from this article: https://www.geeksforgeeks.org/abstractsequentiallist-in-java-with-examples/. Study MyLinkedList.java carefully to understand how it is structured, and where and what you need to modify/implement for MyTwoWayLinkedList. Since MyTwoWayLinkedList extends java.util.AbstractSequentialList which implements…arrow_forwardImplement a class for Circular Doubly Linked List (with a dummy header node) which stores integers in unsorted order. Your class definitions should look like as shown below:class CDLinkedList;class DNode {friend class CDLinkedList;private int data;private DNode next;private DNode prev;};class CDLinkedList {private:DNode head; // Dummy header nodepublic CDLinkedList(); // Default constructorpublic bool insert (int val); //Inserts val at end into the linked list.Time complexity:O(1)public bool removeSecondLastValue ();//Note: Remove the Second last val from the linked list. Time complexity: O(1)public void findMiddleValue(); // find middle value of the linklist and delete it.public void display(); // Displays the contents of linked list on screen …};arrow_forwardImplement a class for Circular Doubly Linked List (with a dummy header node) which stores integers in unsorted order. Your class definitions should look like as shown below:class CDLinkedList;class DNode {friend class CDLinkedList;private int data;private DNode next;private DNode prev;};class CDLinkedList {private:DNode head; // Dummy header nodepublic CDLinkedList(); // Default constructorpublic bool insert (int val); //Inserts val at end into the linked list.Time complexity:O(1)public bool removeSecondLastValue ();//Note: Remove the Second last val fromarrow_forward
- CODE IN JAVA You have probably heard about the deque (double-ended queue) data structure, which allows for efficient pushing and popping of elements from both the front and back of the queue. Depending on the implementation, it also allows for efficient random access to any index element of the queue as well. Now, we want you to bring this data structure up to the next level, the teque (triple-ended queue)!arrow_forwardProgramming in Java. What would the difference be in the node classes for a singly linked list, doubly linked list, and a circular linked list? I attached the node classes I have for single and double, but I feel like I do not change enough? Also, I use identical classes for singular and circular node which does not feel right. Any help would be appreciated.arrow_forwardUse a Doubly Linked List to implement a Dequea. Define a Deque interface.b. Define a LinkedDeque class (Node class)..c. Define a Test class to test all methods help me make test class first code package Deque; public class DLinkedList<E> { private Node<E> header = null; private Node<E> trailer = null; private int size = 0; public DLinkedList() { header = new Node<>(null, null,null); trailer = new Node<>(null,header,null); header.setNext(trailer); size = 0; } public int getSize() { return size; } public boolean isEmpty() { return size ==0; } public E getFirst(){ if(isEmpty()) { return null; } return header.getNext().getElement(); } public E getLast(){ if(isEmpty()) { return null; } return trailer.getPrev().getElement(); } public void addFirst(E e) { addBetween(e,header,header.getNext()); } public void addLast(E e) { addBetween(e,trailer.getPrev(), trailer); } public E removeFirst() { if (isEmpty()) { return null; } return…arrow_forward
- In Java I'm trying to make a Red Black Tree through inheritance with the Binary Tree I created (as provided along with the Binary Node) yet I'm having a lot of difficulty knowing where and how to start as well as how to override and even create the Insert and Remove functions for the Red Black Tree. Code and assistance in this topic will be greatly appreciated... here is the code I'm utilizing for this project. Binary Node I created: public class BinNode{private String data;private BinNode left;private BinNode right;private int height; //height fieldpublic BinNode(){data = "";left = null;right = null;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public BinNode(String d){data = d;left = null;right = null;}public void setData(String d){this.data = d;}public String getData(){return this.data;}public void setLeft(BinNode l){this.left = l;}public BinNode getLeft(){return this.left;}public void setRight(BinNode r){this.right = r;}public…arrow_forwardTo finish up the definition of the Node class, we need at least two constructor methods. We definitely want a default constructor that creates an emptyNode, with both the Element and Link members set to null. We also need aparameterized constructor that assigns data to the Element member and setsthe Link member to null.Write the code for the Node class:arrow_forwardSuppose that you are required to create a C++ class with additional method, instead of a struct in a linked list. You are required to use a class as a node.Write the definition of the node as a class, so that nodeType is a class and member variables are private, with its proper methods and properties. The node should be a template.arrow_forward
- You may find a doubly-linked list implementation below. Our first class is Node which we can make a new node with a given element. Its constructor also includes previous node reference prev and next node reference next. We have another class called DoublyLinkedList which has start_node attribute in its constructor as well as the methods such as: 1. insert_to_empty_list() 2. insert_to_end() 3. insert_at_index() Hints: Make a node object for the new element. Check if the index >= 0.If index is 0, make new node as head; else, make a temp node and iterate to the node previous to the index.If the previous node is not null, adjust the prev and next references. Print a message when the previous node is null. 4. delete_at_start() 5. delete_at_end() . 6. display() the task is to implement these 3 methods: insert_at_index(), delete_at_end(), display(). hint on how to start thee code # Initialize the Node class Node: def __init__(self, data): self.item = data…arrow_forwardUse a Doubly Linked List to implement a Dequea. Define a Deque interface.b. Define a LinkedDeque class (Node class)..c. Define a Test class to test all methods first code package Deque; public class DLinkedList<E> { private Node<E> header = null; private Node<E> trailer = null; private int size = 0; public DLinkedList() { header = new Node<>(null, null,null); trailer = new Node<>(null,header,null); header.setNext(trailer); size = 0; } public int getSize() { return size; } public boolean isEmpty() { return size ==0; } public E getFirst(){ if(isEmpty()) { return null; } return header.getNext().getElement(); } public E getLast(){ if(isEmpty()) { return null; } return trailer.getPrev().getElement(); } public void addFirst(E e) { addBetween(e,header,header.getNext()); } public void addLast(E e) { addBetween(e,trailer.getPrev(), trailer); } public E removeFirst() { if (isEmpty()) { return null; } return remove(header.getNext( )); } public E…arrow_forward2. Say you want to keep a list of Students. Each student will have thefollowing attributes: a name, cgpa and ID. How will you implement such a list? Suppose, onestudent’s name is Frogo (with a cgpa of 3.4 and ID 101) and another student’s name is Sam(cgpa 3.5 and ID 102). How will you keep this information in the aforementioned list?arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education