//单链表
#include<stdio.h>
#include<stdlib.h>
int nCount = 0; //计算创建了几个元素
//结构体,创建链表
struct List
{
void *data;
struct List *next;
}ListEmpty;
//初始化链表
void ListInit(ListEmpty *l)
{
l->data = NULL;
l->next = NULL; //不创建下一个元素的内存空间
nCount++;
}
//创建next元素内存
void CreateList(ListEmpty *l)
{
l->next = (List*)malloc(sizeof(ListEmpty));
ListInit(l->next);
}
//向data里存放数据
ListEmpty* ListData(ListEmpty *l,void *data)
{
l->data = data;
return l->next;
}
//销毁元素
void Destroy(ListEmpty *l)
{
ListEmpty *n;
n = l->next;
if(NULL == n)
{
free(n);
nCount--;
return ;
}
n->data = l->data;
Destroy(n);
}
void main()
{
List *l;
l = (List*)malloc(sizeof(ListEmpty)); //创建链表的头
ListInit(l); //l必须要初始化,才能使用
ListData(l,"hello world");
printf("%s\n",l.data);
}