在我以前有关链表的创建,都是用的多个函数实现的。首先要创建一个节点 然后再向节点后面插入一个个节点,即生成一条链表。
至少用两个函数实现的,一个创建节点函数 ,一个插入函数。最近发现原来用一个函数即可实现上述功能,通过反复调用这个函数就可实现一条链表的创建,贴如下代码:
typedef struct _node{
int a;
int b;
struct _node *next;
}node_t;
node_t *head = NULL;
node_t create_list(int a,int b)
{
node_t * node = malloc(sizeof(node_t));
node->a = a;
node->b =b;
node->next = head;
head = node;
return node;
}
多次调用create_list()就可创建任意多个节点的链表。
从逻辑上感觉此链表是向左生长的。我想应该也可以用一个函数实现链表可以右生长。暂时没有想到,希望看到的朋友能指点多多。