定义一个空的单链表
1、不带头结点
#include<stdio.h>
#include<stdbool.h>
typedef struct{
int data;
struct LNode *next;
} LNode , *LinkList;
//初始化一个空的单链表
bool InitList(LinkList *L){
*L=NULL;
return true;
}
void test(){
LinkList L;
//初始化一个空表
InitList(&L);
}
int main() {
test();
return 0;
}
struct LNode *next;
是用来定义链表节点中的指针,指向下一个节点。这是单链表中常见的设计。单链表中的每个节点都包含两个部分:数据域和指针域。数据域用于存储节点的数据,而指针域用于指向下一个节点,从而将节点串联起来形成链表。要表示一个单链表的时候,只需要定义一个头指针L,指向单链表的第一个节点
我们有两种写法:
LNode & L;
LinkList L;
2、带头节点
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);
}
int main(){
test();
return 0;
}