不带头结点
typedef struct LNode
{
int data;
struct LNode* next;
}LNode,*LinkList;
bool InitList(LinkList &L)
{
L=NULL;
return true;
}
void test()
{
LinkList L;
InitList(L);
//...后续代码
}
判断是否为空表
bool empty(LinkList L)
{
if(L=NULL)
{
return true;
}else{
return false;
}
}
或者直接
bool empty(LinkList L)
{
return (L==NULL);
}
带头结点的单链表
typedef struct LNode
{
int data;
struct LNode* next;
}LNode,*LinkList;
//初始化一个单链表(带头结点)
bool InitList(LinkList &L)
{
L=(LNode*)malloc(sizeof(LNode)); //分配一个头节点
if(L==NULL) //内存不足,分配失败
return false;
L->next=NULL; //头节点之后,暂时还没有节点
return true;
}
void test()
{
LinkList L; //声明一个指向单链表的指针
InitList(L); //初始化一个空表
//...
}