【发布时间】:2021-09-15 11:19:49
【问题描述】:
我们要制作一个视频商店程序,但我一直卡在“租用视频”和“返回视频”中,因为我必须在处理中使用堆栈。 我的主要想法基本上是每当客户租用时,租用的视频ID都会被推送到客户节点堆栈数据类型中。返回视频也是如此,它将从客户节点堆栈数据类型中弹出()返回的视频 ID。 (我不确定我是否应该使用链表,或者它是否是最好的方法。)
struct customerNode
{
int customer_ID;
string name, address;
stack <string> rentedVid;
stack <string> tempRent;
struct customerNode* next;
};
struct customerNode* first = NULL;
struct customerNode* last = NULL;
void insertCustomer(int custID, string custN, string custA)
{
struct customerNode* temp;
temp = new customerNode;
temp->customer_ID = custID;
temp->name = custN;
temp->address = custA;
// stack rentedVid ??
// stack tempRent ??
if (first == NULL)
{
first = temp;
last = temp;
}
else
{
last->next = temp;
last = temp;
}
}
(我还有视频ID、标题、副本等的链接列表) 实际上,我对我的程序没有信心。 要求: 当您从文本文件中检索客户时,您必须将客户存储在队列中(我现在使用的是链表,但稍后会更改它)。它们还必须在处理期间存储在队列中。当用户选择退出程序时,将保存回文本文件。 租借的视频将存储在堆栈中,并在用户选择退出程序时保存在 CUSTOMER-RENT 文本文件中。
【问题讨论】:
-
堆栈应该只对内部操作有用,100% 在应用程序的控制下,例如,撤消/重做列表。不适用于依赖外部功能的操作,例如客户。
-
我也是这么想的。只是我们的教授要求我们实现这一点。虽然,我们实际上需要为客户非链表使用队列。
-
也许学习效果应该是,如果您使用最不合适的容器类型,您的程序可能会变得复杂。奇怪的教学方式......
标签: c++ linked-list stack