【发布时间】:2017-01-29 14:42:49
【问题描述】:
列表的类型定义和往常一样在linkedList.h中。
#ifndef LINKEDLIST_H
#define LINKEDLIST_H
typedef struct snode {
int value;
struct snode *next;
} snodeType;
typedef struct hnode {int count;
snodeType *first;
snodeType *last;
} sList;
sList* create_sList(void);
int insert_element_s(sList *L, snodeType *p, int value);
int delete_element_s(sList *L, snodeType *p);
sList* merge_lists(sList *L1, sList *L2);
#endif /* LINKEDLIST_H */
问题是:
sList * create_sList(void) 创建列表并将其返回给 呼叫者。它必须为头节点分配内存,初始化 结构 hnode 中的字段。
sList* create_sList(void) {
sList *list = NULL;
list->first = (sList*)malloc(sizeof(snodeType));
list->last = (sList*)malloc(sizeof(snodeType));
/* 2nd option
sList *list = NULL;
node = malloc(sizeof(snodeType));
node->next= NULL;
list->first = node;
list->last = node;
*/
return list;
}
我只需要启动这个链表,有人知道怎么做吗?
【问题讨论】:
-
启动列表是什么意思?
-
sList* create_sList(void) { sList *list = malloc(sizeof(*list)); list->count = 0; list->last = list->first = NULL; return list; }
标签: c linked-list queue