0

这是在结构中声明双向链表的正确程序吗?如果这有任何相关性,我正在使用该结构来读取文本文件。

#define MAX 20
//struct to order contactList
struct contact
{
    string firstName[MAX],lastName[MAX],email[MAX],companyName[MAX];
    long phoneNum[MAX];
    struct listelement *link
    struct node *next;
    struct node *prev;

};
4

1 回答 1

4

可能不是。通常,您会使用,struct contact *next; struct contact *prev;因为列表中的项目是(可能)struct contact而不是struct node.

因此,我希望看到:

#define MAX 20
//struct to order contactList
struct contact
{
    string              firstName[MAX];
    string              lastName[MAX];
    string              email[MAX];
    string              companyName[MAX];
    long                phoneNum[MAX];    /* 20 phone numbers per contact — wow! */
    struct listelement *link;             /* Semi-colon added.  What is this for? */
    struct contact     *next;
    struct contact     *prev;
};

结构的电子邮件元素太短(例如,我的主要电子邮件地址不适合;我建议您至少需要 32 个字节)。对于一个联系人来说,电话号码是非常多的。此外,long不会存储所有 10 位数的电话号码。

目前尚不清楚该link元素的用途。它可能是涉及这些结构的单链表的一部分。

于 2013-03-13T18:25:51.920 回答