当前位置: 首页 > 知识库问答 >
问题:

链表中的大小计算不当队列的java实现

司马高昂
2023-03-14

我试图在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());

    }

}

共有1个答案

司马钱明
2023-03-14

您的列表大小从不减小。要纠正这一点,您需要执行以下操作:

    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