queue

im confused

Page 1 of 1

2 Replies - 1029 Views - Last Post: 05 November 2006 - 02:48 PM Rate Topic: -----

#1 youwish16  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 19
  • Joined: 03-October 06

queue

Posted 04 November 2006 - 08:27 PM

ok so i started writing code and i get to the end and the "QueueTest" file wont compile and i dont know what to do.

public class Node
{
  private Object item;
  private Node next;
  
  public Node(Object newItem)
  {
	item = newItem;
	next = null;
  }
  
  public Node(Object newItem, Node nextNode)
  {
	item = newItem;
	next = nextNode;
  }
  public void setItem(Object newItem)
  {
	item = newItem;
  }
  
  public Object getItem()
  {
	return item;
  }
  
  public void setNext(Node nextNode)
  {
	next = nextNode;
  }
  
  public Node getNext()
  {
	return next;
  }
}


public class QueueReferenceBased
{
  private Node lastNode;
  
  public QueueReferenceBased()
  {
	lastNode = null;
  }
  
  public boolean isEmpty()
  {
	return lastNode == null;
  }
  
  public void dequeueAll()
  {
	lastNode = null;
  }
  
  public void enqueue(Object newItem)
  {
	Node newNode = new Node(lastNode.getNext());
	
	if(isEmpty())
	{
	  newNode.setNext(newNode);
	}
	else
	{
	  newNode.setNext(lastNode.getNext());
	  lastNode.setNext(newNode);
	}
	
	lastNode = newNode;
  }
  
  public Object dequeue()
  {
	if(!isEmpty())
	{
	  Node firstNode = lastNode.getNext();
	  if(firstNode == lastNode)
	  {
		lastNode = null;
	  }
	  else
	  {
		lastNode.setNext(firstNode.getNext());
	  }
	  return firstNode.getItem();
	}
	else
	 System.out.println("QueueException on deque:" + " queue empty");
	return null;
  }
}



public class QueueTest extends QueueReferenceBased
{
  public static void main(String[] args)
  {
	QueueReferenceBased queue1 = new QueueReferenceBased();
	
	for(int i=0; i < 9; i++)
	{
	  queue1.enqueue(new Integer(i));
	}
	System.out.println("These are the contents of this Queue:");
	while (!queue1.isEmpty())
	{
	System.out.print(dequeue());
	}
  }
}


and this is the error message
1 error found:
File: C:\Documents and Settings\Owner\My Documents\java programs\QueueTest.java  [line: 14]
Error: non-static method dequeue() cannot be referenced from a static context



i dont know what to do. and i think i have more code than i actually need lol any help would be appreciated

Is This A Good Question/Topic? 0
  • +

Replies To: queue

#2 Jayman  Icon User is offline

  • Student of Life
  • member icon

Reputation: 415
  • View blog
  • Posts: 9,532
  • Joined: 26-December 05

Re: queue

Posted 05 November 2006 - 12:08 PM

You need to reference the method through the object you created.
System.out.print(queue1.dequeue());


Was This Post Helpful? 0
  • +
  • -

#3 youwish16  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 19
  • Joined: 03-October 06

Re: queue

Posted 05 November 2006 - 02:48 PM

ok i did that

public class QueueTest extends QueueReferenceBased
{
  public static void main(String[] args)
  {
	QueueReferenceBased queue1 = new QueueReferenceBased();
	
	for(int i=0; i < 9; i++)
	{
	  queue1.enqueue(new Integer(i));
	}
	System.out.println("These are the contents of this Queue:");
	while (!queue1.isEmpty())
	{
	System.out.print(queue1.dequeue());
	}
  }
}


now it compiles put there is an error when it runs

NullPointerException: 
  at QueueReferenceBased.enqueue(QueueReferenceBased.java:22)
  at QueueTest.main(QueueTest.java:9)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)

Was This Post Helpful? 0
  • +
  • -

Page 1 of 1