实现 ADT 双端队列。 此 ADT 类似于队列,但支持在队列的任一端添加和删除的函数。
看来我正在努力解决删除部分。这是我尝试过的:
class deq:
def __init__(self):
self.item = []
def is_empty(self):
return self.item == None
def size(self):
return len(self.item)
def add_front(self, item):
self.item.insert(0,item)
def add_back(self, item):
selft.item.append(item)
def remove_front(self, item):
self.item.remove(item)
def remove_back(self, item):
self.item.pop()
输出的示例屏幕截图:这是示例输出
remove_front和remove_back不应该消耗项目(根据这些测试和队列是什么(。
remove_front总是删除第一个元素,remove_back总是删除最后一个元素。因此,这些函数不需要传递项目。
def remove_front(self):
self.item.pop(0)
def remove_back(self):
self.item.pop()
您可以通过查看测试失败的原因,在 2 秒内轻松地自己调试它:"缺少 1 个位置参数"。这意味着自动测试调用函数的参数比函数预期的少一个。
#include <iostream>
int main() {
int choice;
while (true) {
// Displaying the menu options
std::cout << "Menu Options:n";
std::cout << "1. Option 1n";
std::cout << "2. Option 2n";
std::cout << "3. Option 3n";
std::cout << "4. Option 4n";
std::cout << "5. Exitn";
std::cout << "Enter your choice: ";
std::cin >> choice;
switch (choice) {
case 1:
std::cout << "You selected Option 1.n";
// Perform actions for Option 1
break;
case 2:
std::cout << "You selected Option 2.n";
// Perform actions for Option 2
break;
case 3:
std::cout << "You selected Option 3.n";
// Perform actions for Option 3
break;
case 4:
std::cout << "You selected Option 4.n";
// Perform actions for Option 4
break;
case 5:
std::cout << "Exiting the program. Goodbye!n";
return 0;
default:
std::cout << "Invalid choice. Please try again.n";
break;
}
}
return 0;
}