带头结点与不带头结点的单链表实现

不带头结点:

typedef struct LNode {
    int data;
    struct LNode *next;
}LNode,*LinkList;

//初始化一个空的单链表
bool InitList(LinkList &L) {
    L = NULL;
    return true;
}

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

带头结点:

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

 

上一篇:单链表的插入和删除


下一篇:俩个递增有序单链表的合并算法(含头结点)