0

我正在创建一个程序,我从文件中读取信息并在 4 个链接列表之间分配信息。我创建了以下结构来表示信息。

struct ListStruct{
  int waitingTime;
  struct ListStruct *next;
};

我的问题是与这些类型定义有关。虽然第一个定义了结构,但我不确定第二个做了什么。它创建了一个指向 struct 'Patron' 的指针,但是它是 typedef'd 是否意味着任何可以让我在 4 个链表之间轻松移动的东西?如果是这样,利用它的有效方法是什么?

typedef struct ListStruct Patron; 
typedef Patron *ListHeadPtr;
4

1 回答 1

0

它是 typedef 是否意味着任何可以让我在 4 个链接列表之间轻松移动的东西?

不,这只是为了方便。

如果是这样,利用它的有效方法是什么?

您现在可以将链表传递给函数,如下所示:

ListHeadPtr append(ListHeadPtr aList, ListHeadPtr anotherList) {
    ....
}

附录

To "cons" an element (i.e. insert it at the start of the list):

ListHeadPtr cons(int waitTime, ListHeadPtr list) {
    ListHeadPtr first = malloc(sizeof(Patron));
    if (first == NULL) {
        /* Take evasive action */
    }
    first->waitingTime = waitTime;
    first->next = list;
    return first;
}
于 2013-03-29T23:06:47.687 回答