从一个结构创建多个链接列表

时间:2013-03-29 22:59:35

标签: c data-structures linked-list

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

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

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

typedef struct ListStruct Patron; 
typedef Patron *ListHeadPtr;

1 个答案:

答案 0 :(得分:0)

  

它是否被typedef暗示任何可能让我容易的东西   在4个链表之间移动?

不,这只是为了方便。

  

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

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

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

<强>附录

要“限制”一个元素(即将其插入列表的开头):

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