我正在完成我的任务。 转让问题说明: “获取用户关于交货记录的输入,该交货记录包括交货记录ID,供应商名称,订单日期,交货日期,每种类型纸张的数量以及指示交货,待处理或取消的状态。 “
“您要实现一个链接列表来保存交付记录。”
如何在链表类中保留多个数据?我是否在每个节点中保留多个数据? 像这样:
struct node
{
char id[10];
char name[20];
char orderDate[20];
char deliveryDate[20];
int quantity;
char status[10];
node *next;
};
这会有用吗?
EDITED 所以我的班级会是这样的吗?
class linkedlist{
//public functions
private:
struct node;
typedef node* nodeptr;
struct node
{
char id[10];
char name[20];
char orderDate[20];
char deliveryDate[20];
int quantity;
char status[10];
node *next;
};
};
正确?
答案 0 :(得分:0)
是的,您在正确的轨道上将多个数据放在每个节点中,但我对您的节点结构有一些提及:
由于日期有点难以处理并解析为字符串,我会使用日期结构:
struct date{ int day; int month; int year; };
此外,状态应该是bool,更合适的名称将是交付。在这种情况下,交付变量的真值意味着它已经交付,而假值意味着待定。
答案 1 :(得分:0)
是啊..您也可以编写课程并将该所有信息作为该课程中的数据成员提及。编写类后,您可以创建类的对象,并将此对象用作链接列表中的一个节点。你的要求是c ++还是c?
答案 2 :(得分:0)
我同意Paul92关于您选择的数据类型。
将节点数据与存储结构分开也是一种好习惯。您的结构称为节点,包含有关传递记录的信息以及指向下一个devilvery记录的指针。使用组合分离关注点的更清晰的实现可能看起来像
struct DeliveryRecord {
char id[10];
char name[20];
char orderDate[20];
char deliveryDate[20];
int quantity;
char status[10];
};
template<typename T>
struct ListNode {
T data;
ListNode* next;
};
如果你更喜欢继承,你可以使用像
这样的ListNode类template<typename T>
struct ListNode : public T {
ListNode* next;
};
typedef ListNode<DeliveryRecord> DeliveryRecordListNode;
这样,存储记录的方式可能会有所不同,而不会更改记录结构的外观。下一个任务可能会说你应该将它们存储在树形结构中。这不会改变DeliveryRecord结构。您只需要创建一个TreeNode类模板; - )