在结构中声明双重链表

时间:2013-03-13 18:21:41

标签: c struct doubly-linked-list

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

#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;

};

1 个答案:

答案 0 :(得分: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元素的用途。它可能是涉及这些结构的单链表的一部分。