我试图在Java中建立一个队列的链表实现,在我的驱动程序中,在我出列一些元素后,大小并没有调整为应该的较低的数字。下面是代码,下面是输出。
import java.util.LinkedList;
//implementation of a queue by using a linked list
public class Queue<T> {
//declaring array list to store and manipulate data
//using predefined methods
private LinkedList<T> list;
int count, front, rear;
public Queue() {
list= new LinkedList<T>();
count=front=rear=0;
}
//Adds given element to rear of queue
public void enqueue (T element) {
if(front==rear) {
list.add(front, element);
rear++;
}
else {
list.add(rear, element);
rear++;
}
count++;
}
//removes element at queue front
public T dequeue() {
if(list.isEmpty()) {
System.out.println("Queue is empty");
return null;
}
T result = list.get(front);
front++;
count--;
return result;
}
//returns reference to element at queue front
public T first() {
return list.get(front);
}
//returns true if queue is empty
public boolean isEmpty() {
if(list.isEmpty())
return true;
else
return false;
}
//returns number of elements in the queue
public int size() {
return list.size();
}
//returns string representation of queue
public String toString() {
String result = "";
for(int i=front;i<rear;i++)
result+=list.get(i)+" ";
return result;
}
}
/*Demonstrates the use of a queue implemented by
* using a linked list*/
public class QueueLinkedListDemo {
public static void main(String[] args) {
Queue<Character> charList = new Queue<Character>();
//display size of queue
System.out.println("The size of the queue is " + charList.size());
//adding elements to queue
System.out.println("Calling enqueue() to add 'a' to the queue");
charList.enqueue('a');
System.out.println("Calling enqueue() to add 'b' to the queue");
charList.enqueue('b');
//display size of queue
System.out.println("The size of the queue is " + charList.size());
System.out.println("Calling dequeue() method to remove an element from the queue " + charList.dequeue());
System.out.println("Calling toString() method to display queue elements " + charList.toString());
//display first element of queue
System.out.println("The first element in queue is " + charList.first());
//display size of queue
System.out.println("The size of the queue is " + charList.size());
}
}
您的列表大小从不减小。要纠正这一点,您需要执行以下操作:
public T dequeue() {
if(list.isEmpty()) {
System.out.println("Queue is empty");
return null;
}
T result = list.remove(0);
return result;
}
这将使计数,后方,前方毫无用处。
我得到了这些结构声明,以便实现使用循环链表的队列集合。 我试图创建一个函数,它将以指定的值排队(将其追加到队列的后面),我需要考虑队列为空和队列有一个或多个元素的两种情况。这是我到目前为止的代码: 这段代码给了我一个运行时错误,所以我不确定出了什么问题。在代码中,我假设队列-
问题内容: 我的表中的一列中包含大量BLOB数据。我正在编写一个实用程序以将数据转储到文件系统。但是在转储之前,我需要检查磁盘上是否有必要的空间来导出整个表中的所有Blob字段。 请提出一种有效的方法来获取表中所有Blob字段的大小。 问题答案: 您可以使用MySQL函数。有关更多详细信息,请参见此处。
我有一个链表类,这样实现(也进行了测试): 然后,我创建了一个队列类: 但是我不能在main上使用它,任何入队的尝试都会导致for循环崩溃,返回错误代码-1073741819。函数工作并显示。 输出: 我尝试为队列类编写一个构造函数来初始化LList类,但找不到正确的方法。如果我编写一个main函数只测试LList类,我就不需要初始化了,因为它的构造器已经在继续这个工作了。
问题内容: 我想记录一个对象占用一个项目的内存量(以字节为单位)(我正在比较数据结构的大小),并且似乎没有方法可以在Java中完成。据说C / C ++有方法,但这在Java中不存在。我尝试在创建对象之前和之后记录JVM中的可用内存,然后记录差异,但是无论结构中元素的数量如何,它只会给出0或131304,并且两者之间什么都没有。请帮助! 问题答案: 你可以使用该软件包: http://docs.o
我需要为链表队列实现一个toString()递归方法。我知道我的toString方法在我上周做的一个链表实现中工作得很好,所以我在处理它的队列方面出了问题。 我的QueueList的toString方法: 以及我的构造函数,例如QueueList: 我试图用这个测试看看里面发生了什么: 与输出 我意识到这是因为我说的是前面的在方法的递归部分,但即使我将其更改为,我的输出是 这可能与我的排队和退队方
问题内容: 我试图弄清楚如何确定数据库中特定列的大小,例如,我有两列称为sourceip,destinationip的列,它们都是16字节字段。 我以为这将是在information_schema或\ d +中的某个位置,但是我找不到用于隔离每种列类型的大小的特定命令。 您可以在数据库中计算列类型的大小,还是只需要在Postgresql文档中引用每种类型的字节大小? 问题答案: pg中只有少数类型
问题内容: 最近在一次采访中我遇到了编程问题。 有2个链接列表。每个节点存储一个从1到9的值(指示数字的一个索引)。因此123将是链表1-> 2-> 3 任务是创建一个函数: 这将返回2个链表争论中的值之和。 如果数组a为:1-> 2-> 3-> 4 数组b为:5-> 6-> 7-> 8 答案应该是:6-> 9-> 1-> 2 这是我的算法: 遍历a和b中的每个节点,获取作为整数的值并将其相加。使
几天来,我一直在试图弄清楚一个关于最近任务的问题,但我似乎无法理解它。问题如下: 创建一个PriorityQueue类,该类包含两个字段:NoopPriorities和LinkedList…它应该有一个构造函数,该构造函数接受一个int值。将该值分配给NoopPrioities…同时,添加与NumberOfPrioritiorities一样多的LinkedList。获取优先级和对象的Enqueue