I'm trying to print the contents of my linked list. I'm using nodes and within those nodes it hold String data. So i want to print out the data within the nodes. Whenever i do
System.out.println(node1.data),
it prints perfectly. But i'm trying to use a method where it would loop through the list and print out the data for every node in it. when i run my print method i get results such as
Node@15db9742
Node@6d06d69c
Node@7852e922.
Here is my print method i created
Java Code:
public void print(){
Node<E> current = head;
while (current.next != null){
System.out.println(current.data);
current = current.next;
}
} mh_sh_highlight_all('java');
Its a program that creates a singly linked list that stores names and high scores and prints them. For some reason it is printing an entry extra times. Also my remove function is not working properly.
package project; public class GameEntry implements Comparable<GameEntry> { private String name; private int score; public GameEntry(String n, int s) { name = n; score = s;
The only problem I have now is getting a method to return the median element of a LinkedList without using loops of any kind or by using a global counter anywhere.
I've pretty easily figured out how to get the index value for the median number (there is some lee way allowed. If the list has an even size, any of the middle values are accepted) but I can't figure out how to print it without loops.
I'm sure I need to make a method that finds an element at the given index value, but I don't know how to do it without loops.
Here's all of my code. Inside is my Assignment3 class I use for testing, StudentList which contains the LinkedList head and other List methods, and StudentNode which is obviously, the Node class. Also I've attached the first test1.txt file as well.
import java.io.FileNotFoundException; import java.util.*; public class Assignment3 { public static void main (String []args){ StudentList<StudentNode> myList = new StudentList<StudentNode>();
[Code] .....
I tried making a method that basically counts up the list recursively then a second method that counts down recursively and is supposed to stop once it hits the middle number, then print that node.
public class ArrayPrinter { public static void main(String[] args) { int[] oneD = {5, 6, 7, 8}; PrintArray(oneD); } public static void PrintArray(int[] Arr) { System.out.println ('['); for (int i =0; i >= Arr.length; i++) { System.out.print (Arr[i]); if (i < Arr.length){ System.out.print(", "); } System.out.print (']'); } } }
I tried to format this to enhance readability but I'm not sure if I managed to improve it any... This code should be printing the contents of the array with spaces and commas its just printing [. I think this is because Arr is empty for some reason but I'm not sure why it would be when it gets the values of oneD passed to it.
I have some class called sorted to sort the linked list through the nodes of the list. and other class to test this ability, i made object of the sort class called "list1" and insert the values to the linked list.
If i make other object called "list2" and want to merge those two lists by using method merge in sort class. And wrote code of
list1.merge(list2);
How can the merge method in sort class know the values of list1 that called it as this object is created in other class.
So we have an assignment regarding a linked list implementation of a given list interface.
In my list interface, the method contains(T anEntry) is defined.
In the LList implementation, contains is already implemented as part of getting the core methods in.
Now I am being tasked with the following:
Provide a second implementation of the method contains2(T anEntry) that calls a private recursive method
Private boolean contains (T anEntry, Node startNode) that returns whether the list that starts at startNode contains the entry anEntry.
I've written the private recursive method already. That's not an issue (at least not right now).
But what I don't understand is how startNode is supposed to be populated when this private contains method is called from the public contains2 method? contains2 only takes one parameter: anEntry. the private method takes two parameters: anEntry and startNode. How am i supposed to provide startNode when I am calling contains2?
I have this ListInterface class that has operations for my linked list and a LList class. The Llist and ListInterface classes are perfect. My job is to create a driver, or a demo class that showcases these operations. That being said, heres the driver so far:
import java.util.*; public abstract class DriverWilson implements ListInterface { public static void main(String[] args) {
What I'm supposed to do is make a method to insert a set of Tiles to the list,i.e.,a detour(make sure that the inserted detouris compatible with thecurrent path so that the resultingpathdoesnot have any gaps). But I'm confused on how to go about doing it. I was thinking of maybe just adding 1 to the current Node.
import java.io.File; import java.io.FileNotFoundException; import java.util.List; import java.util.Scanner; public class Path { static Tile startTile;
I'm trying to implement an Office class that contains an inner class: WorkerNode. The WorkerNode class has a name attribute (String) and WorkerNode attributes for boss, peer and subordinate. The attributes of Office are manager and current which are WorkerNode references. The manager refers to the entry point of the structure and current is the current node in the structure. For simplicity, i'm going to try to limit it to 3 levels and assume that the names are unique. I've put together a Office class that containing main and provided the code I've worked on so far.
public class Office { public static void main(String[] args) { String name=Input.getString("input the manager's name: "); Office office=new Office(name); int option;
I have made a node class and im trying to implement a sorting method. I must use a selection sort but with specific instructions: "Your method should not need to use the new operator since it is just moving nodes from one list to another( not creating new nodes)
this is my current implementation ..but i am instantiating new object..
public class NodeInt { private int data; private NodeInt next = null; public NodeInt(){} //precondition: //postcondition: public NodeInt(int data, NodeInt next) { this.data = data; this.next = next;
[code]....
edit: this is the part that worked but i had it commented out so i have the previous and current declared above but didnt copy.
Ok here I have a code that generates 1 million random values then converts them to a string then hashcode. I then insert into a linked list and then I want to run through each hash and find it in the linked list timing each run then averaging out the time at the end.
It works great for smaller amounts of numbers it is searching for (fine under 50 thousand searches for the for loop starting at line 24 LinkedListTest.java) but when I try to do the full million searches it gives me "a Exception in thread "main" java.lang.StackOverflowError" at line 158 in List.java. Maybe im getting tired but I cannot figure out why.
// class to represent one node in a list class ListNode< T > { // package access members; List can access these directly T data; // data for this node ListNode< T > nextNode; // reference to the next node in the list
public void add(int d){ listNode l = new listNode (d, null); l.next = first; first= l; } public list Sum2List (list l1, list l2){ //variables int sum;
[Code] .....
But I have a problem in my first listNode where it ll be pointing to null, thus in the sum2List method the program checks the while condition into false and doesn't go through the loop.
if one address point on another address. so set and get methods will be less efficient then an array, but add or remove will be more efficient by a linked list ? a linked list also inherit from queue so if i add an elemnt via "addFirst" function . where its adding the element ? to the right most or left most ? if i have for example :
here [ ] --> [ ] --> [ ] --> [ ] -->[ ] or here
linked list its FIFO so the head will be the right most ?
Edit : its confused me a little bit but i understood now .so it will be at the left most. its actually ordered . not like the stack which is LIFO.
I searched a lot but can't seem to understand the sorting of a SLLNode... I noticed a method called Bubble Sort, I understand how it works, but can't think of a way to implement it to my code..
I'm having some trouble with figuring out how to move along a doubly linked list for an assignment. The program is supposed to be a simple board game simulation. Here is what I have so far:
Space.java:
public class Space { private String name; public Space next; public Space previous; public Space(String name) { this.name = name;
[Code]...
I seem to have been able to get all the other methods working properly, but I am pretty stuck on how to do the movePlayer. Specifically because it is passing an integer, but my objects are of type Space and Boardgame.
i tried everything but its giving me errors. i tried the for loop but its giving me something else.
this is what i have to do Write a recursive method that prints out the data elements of a linked list in reverse order.
Your method should take in as a parameter the head reference to a linked list. Then, write a recursive method that returns a count of the number of elements greater than a given threshold. You may assume that the data elements in the linked lists are ints. The parameters of your method are a reference to the linked list and a int value representing the threshold.
public class recursion3 { public static void main(String [] args) { char a [] = {'A', 'B','C','D','E'}; System.out.println(a); } public static String reverseString(String s) { if (s.length() <= 1) {
I am creating a recursive method to reverse a linked list in java. It works the first time when I call it, but I want it to work where I call it a second time and it reverses it to the original state. How can I get that to work with this implementation?
public void reverseList() { System.out.printf("%-16s%-3s%n", "Name", "Score"); System.out.println("--------------- -----"); reverseList(first); } public void reverseList(Node aNode) { if (aNode != null) { reverseList(aNode.next); System.out.printf("%-15s%6s%n" , aNode.name , aNode.score); } }
I am trying to advance to the next node in my linkedList. Below is what i have so far.
/** * Move forward, so that the current element is now the next element in this sequence. * @param - none * @precondition: * isCurrent() returns true. * @postcondition: * If the current element was already the end element of this sequence (with nothing after it), then there is no longer any current element. * Otherwise, the new element is the element immediately after the original current element. * @exception IllegalStateException * Indicates that there is no current element, so advance may not be called. **/
I create and populate someLinkedList with '*' characters as soon as a gameLinkedList object is created, so my class is something like
private int size; public class gameLinkedList{ private CharNode game; public gameLinkedList(String someWord){ size=someWord.length(); for(int i=0;i<size;i++){CharNode aNode = new CharNode('p');
i'm currently going over single linked list, and i'm coming across an error which i do not know how to get by. I'm using single linked list for now just for study purposes, then i would move on to double.
Error: No enclosing instance of type LList is accessible. Must qualify the allocation with an enclosing instance of type LList (e.g. x.new A() where x is an instance of LList).
public class LList { private static class Node<E>{ private E data; private Node<E> next;
I am trying to implement a singly linked list. My singly linked list, where I implemented a class named linkedlist, that I defined (this implementation of linkedlist is not the java class linkedlist, it is my own version of linkedlist):
Java Code:
public class SinglyLinkedList<E> implements LinkedList<E> { public class Node<E> { public Node<E> next; public E element; public Node(E element) {
this.element = element; }
public Node (E element, Node<E> next) {
[code]...
But when I go to my main method to add into my SinglyLinkedList, it doesn't add anything.
i'm currently studying over single linkedLists and i'm just writing various methods for it. One method i'm currently stuck on is writing a remove method where it returns a boolean true if its found and it will delete it, and false if the target isn't found. My problem is that it always comes up as flase and i know that the target is in the linked list. Here is the code for my method.
A "postings list" has a data field, a field for the next pointer and a jump field - the jump field points to any other node. The last node in the postings list has next set to null; all other nodes have non-null next and jump fields.
Implement a function that a postings list as input and returns a copy of the list, in O(n) time and O(1) storage beyond that required for the nodes in the copy. You may modify the original list but must return it to its original state before returning.
I was able to find a solution, but not one that runs in O(n) time.
I was supposed to write a PolyNode class for each node in the LinkedList, and a Polynomial class which is pretty much the list itself.Here is what I've coded so far:
PolyNode class:
public class PolyNode { private int coefficient; private int exponent; private PolyNode next;
[code]....
The only trouble I'm having with this problem is finding a way to add these two polynomials together. My first attempt at it was to use nested while loops to traverse through both polynomial lists, like so:
public Polynomial addPolynomials(Polynomial p1, Polynomial p2) { PolyNode current1 = p1.getFirstNode(); PolyNode current2 = p2.getFirstNode(); int coeff; int expo; Polynomial polySum = new Polynomial();
[code]....
Basically what this method does:
-Check to see if the exponents between two terms are the same -If true, add their coefficients together -Create a new node for the polySum with that coefficient sum and the particular exponent value -At the end, return the polySum list which should be the sum of two polynomials
The problem with this method is it doesnt account for the values that are left behind because their exponents aren't equal to the exponents of the other list. So, the only terms that are getting added into the sum list are the ones that have the same exponent in both of the lists that are being added together.