单链表的创建定义

(无头结点)单链表

#define NULL 0

typedef struct LNode
{
    int data;           //每个结点存放一个数据元素
    struct LNode *next;     //指针指向下一结点
}LNode,*LinkList;

//初始化一个空单链表
bool InitList(LinkList &L){
    L = NULL;          //空表,暂时没有结点
    return true;
}

bool Empty(LinkList L){
    return(L == NULL);          //判断(无头结点)单链表是否为空
}

void test(){
    LinkList L;         //创建一个指向单链表的指针
    InitList(L);

}

(带头结点)单链表

#define NULL 0

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

bool Empty(InitList L){
    if (L->next == NULL)        //判断(带头结点)单链表是否为空
        return true;
    else
        return false;
}

void test(){
    LinkList L;
    InitList(L);

}

你可能感兴趣的:(数据结构,算法,c语言)