使用LinkedList类实现创建一个队列Queue类。 (1) 包含一个LinkedList对象。 (2)实现入队的时候在队尾添加。 (3) 实现出队的时候在队首删除。
时间: 2024-02-13 16:00:39 浏览: 21
好的,我会按照您的要求进行回答。
```java
import java.util.LinkedList;
public class Queue<T> {
// 包含一个LinkedList对象
private LinkedList<T> list;
// 构造函数
public Queue() {
list = new LinkedList<T>();
}
// 实现入队的时候在队尾添加
public void enqueue(T item) {
list.addLast(item);
}
// 实现出队的时候在队首删除
public T dequeue() {
return list.removeFirst();
}
}
```
这里我们使用了泛型,使得队列可以存储任意类型的数据。enqueue方法用于入队,在队列的末尾添加元素;dequeue方法用于出队,在队列的头部删除元素。
相关问题
C++用链表 LinkedList 实现队列类。在 main 函数中会声明一个整型队列对象,插入 5 个整数,压入队列,再依次取出并显示出来。
好的,我可以为您提供 C++ 用链表 LinkedList 实现队列类的代码,您可以在 main 函数中进行测试。以下是代码:
```c++
#include <iostream>
using namespace std;
// 链表节点结构体
struct ListNode {
int val; // 数据域
ListNode* next; // 指针域
ListNode(int x) : val(x), next(NULL) {}
};
// 队列类
class Queue {
private:
ListNode* front; // 队头指针
ListNode* rear; // 队尾指针
public:
// 构造函数
Queue() : front(NULL), rear(NULL) {}
// 判断队列是否为空
bool empty() {
return front == NULL;
}
// 入队操作
void push(int x) {
ListNode* node = new ListNode(x);
if (empty()) {
front = rear = node;
} else {
rear->next = node;
rear = node;
}
}
// 出队操作
void pop() {
if (empty()) {
return;
}
ListNode* node = front;
front = front->next;
if (front == NULL) {
rear = NULL;
}
delete node;
}
// 获取队头元素
int getFront() {
return front->val;
}
// 获取队尾元素
int getRear() {
return rear->val;
}
};
int main() {
Queue q;
// 插入 5 个整数,压入队列
for (int i = 1; i <= 5; i++) {
q.push(i);
}
// 依次取出并显示出来
while (!q.empty()) {
cout << q.getFront() << " ";
q.pop();
}
cout << endl;
return 0;
}
```
运行结果如下:
```
1 2 3 4 5
```
Java代码实现设计一个类实现自定义Queue接口方法,并实现它保留手机最近10个“未接来电”
下面是一份Java代码,实现了自定义Queue接口方法并保留最近10个未接来电的功能:
```
import java.util.LinkedList;
public class MissedCallsQueue implements Queue<String> {
private LinkedList<String> queue;
public MissedCallsQueue() {
queue = new LinkedList<>();
}
@Override
public void enqueue(String item) {
if (queue.size() >= 10) {
queue.removeLast();
}
queue.addFirst(item);
}
@Override
public String dequeue() {
return queue.removeLast();
}
@Override
public String peek() {
return queue.getLast();
}
@Override
public int size() {
return queue.size();
}
@Override
public boolean isEmpty() {
return queue.isEmpty();
}
}
interface Queue<T> {
void enqueue(T item);
T dequeue();
T peek();
int size();
boolean isEmpty();
}
```
这个类实现了自定义Queue接口的所有方法,并且在enqueue方法中保留了最近10个未接来电,如果队列已经满了,就会移除队尾元素。我们可以通过调用enqueue方法将未接来电加入队列,然后使用peek方法查看最近的未接来电,使用dequeue方法可以按照先进先出的顺序依次获取未接来电。