Java 基于学习链表队列的实现
我目前在一个Data Structures类中,在基于链表队列的实现项目中遇到了一些问题-我已经构建了所有东西,但是我的新的lined List实例没有告诉我向我创建的“llq”实例添加强制转换。下面是我的LinkedList类和驱动程序类 请善待我!这个特别的主题有点迷失了-我愿意接受任何和所有的反馈-谢谢Java 基于学习链表队列的实现,java,data-structures,linked-list,queue,implementation,Java,Data Structures,Linked List,Queue,Implementation,我目前在一个Data Structures类中,在基于链表队列的实现项目中遇到了一些问题-我已经构建了所有东西,但是我的新的lined List实例没有告诉我向我创建的“llq”实例添加强制转换。下面是我的LinkedList类和驱动程序类 请善待我!这个特别的主题有点迷失了-我愿意接受任何和所有的反馈-谢谢 import java.util.LinkedList; public class LinkedListQueue { //Declaring Linked List, Nod
import java.util.LinkedList;
public class LinkedListQueue {
//Declaring Linked List, Node Head & Tail
LinkedList<String> list;
Node head;
Node tail;
class Node{
int data;
Node prev;
Node next;
/**
* Node Constructor
* @param data
*/
Node(int d){
data = d;
}
}
/**
* Linked List Queue Parameterized Constructor
* @param list
*/
public LinkedListQueue(){
list = new LinkedList<String>();
}
/**
* Enqueue Method (adds element to tail)
* @param list
* @return add
*/
public void enqueue(String string){
list.add(string);
}
/**
* Dequeue Method (removes first element)
* @param list
* @return removeFirst
*/
public void dequeue(){
if(list.isEmpty()){ /*check if linked list is empty*/
System.out.println("The Queue is Empty.");
}
else {
list.removeFirst(); /*remove first element of linked list*/
}
}
/**
* Size Method (Size of queue)
* @param list
* @return size
*/
public int size(){
return list.size();
}
/**
* Display Method (prints element in queue)
* @param list
* @return prints element at the indicated index
*/
public void display(){
for(int i=0;i< list.size();i++){
System.out.print(list.get(i)+" ");
}
System.out.println("\n");
}
/**
* getHead Method (gets head of the queue)
* @param list
* @return first element
*/
public String getHead(){
if(list.isEmpty()){
return "The Queue is Empty.";
}
else {
return list.getFirst();
}
}
/**
* getTail Method (gets tail of the queue)
* @param list
* @return last element
*/
public String getTail(){
if(list.isEmpty()){
return "The Queue is Empty.";
}
else {
return list.getLast();
}
}
/**
* IsEmpty Method (checks if queue is empty)
* @param list
* @return true/false
*/
public boolean isEmpty(){
if(list.isEmpty()){ /*checks if linked list is empty*/
return true;
}
else{
return false;
}
}
/**
* Delete Queue Method (clears queue)
* @param list
* @return clear
*/
public void deleteQueue() {
list.clear();
}
}
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
public class Driver{
public static void main(String[] args){
//New instance of linked list queue
LinkedList llq =new LinkedList();
//Checking if stack is empty
System.out.println("Is the Queue empty? " + llq.isEmpty());
llq.addFirst("Queue Element 1");
llq.enqueue("Queue Element 2");
llq.enqueue("Queue Element 3");
llq.enqueue("Queue Element 4");
llq.enqueue("Queue Element 5");
System.out.println("The element at the head is: " + llq.getHead());
System.out.println("The element at the tail is: " + llq.getTail());
//Checking size of stack
System.out.println("Size of the Queue: " + llq.size());
//Printing Stack
System.out.println("*****Display the Queue*****" );
llq.display();
llq.addLast("Queue Element 6");
llq.dequeue("Queue Element 2");
llq.dequeue("Queue Element 3");
//Printing Stack
System.out.println("*****Display the Queue*****" );
llq.display();
llq.dequeue("Queue Element 6");
llq.dequeue("Queue Element 7");
//Checking if stack is empty
System.out.println("Is the stack empty? " + llq.isEmpty());
//Clearing Stack
llq.deleteQueue();
//Checking if stack is empty
System.out.println("Is the stack empty? " + llq.isEmpty());
}
}
import java.util.LinkedList;
公共类LinkedListQueue{
//声明链表、节点头和节点尾
链接列表;
节点头;
节尾;
类节点{
int数据;
节点前置;
节点下一步;
/**
*节点构造函数
*@param数据
*/
节点(int d){
数据=d;
}
}
/**
*链表队列参数化构造函数
*@param列表
*/
公共LinkedListQueue(){
列表=新的LinkedList();
}
/**
*排队方法(将元素添加到尾部)
*@param列表
*@returnadd
*/
公共void排队(字符串){
list.add(字符串);
}
/**
*出列方法(删除第一个元素)
*@param列表
*@return-removeFirst
*/
公开作废出列(){
如果(list.isEmpty()){/*检查链表是否为空*/
System.out.println(“队列为空”);
}
否则{
list.removeFirst();/*删除链表的第一个元素*/
}
}
/**
*大小方法(队列大小)
*@param列表
*@返回大小
*/
公共整数大小(){
返回list.size();
}
/**
*显示方法(打印队列中的元素)
*@param列表
*@return在指定的索引处打印元素
*/
公共空间显示(){
对于(inti=0;i
应该是
LinkedListQueue llq = new LinkedListQueue();
相反,因为您不需要普通的
链接列表
,而是需要自己的包装。除了luk2302给出的答案之外,您的程序中还有很多问题。示例-错误使用@param(您错误地使用了不带任何参数的方法),然后使用Node(您从未使用过任何功能),isEmpty方法中的冗余逻辑。有很多问题!!!