单链表跟顺序表差不多,都是一个结构体下面,不同的是单链表的组成元素有*next指针,此指针就是连接下一个数据元素的法宝!
以下代码为定义一个单链表,并判断单链表是否为空,是就返回1(当然是空的,我都没初始化或放元素进去。)
#include<stdio.h>
using namespace std;
typedef struct LNode { //定义了一个LNode类型的结构体单链表,特征是除了有存储数据的data之外,还有指向下一个元素的*next指针,意味着跟链条一样不需要连续空间,只需要指针指向下一个就行了
int data;
struct LNode *next;
}LNode,*LinkList; //*LinkList是一个指针,指向LNode
bool InitList(LinkList &L) { //初始化一个空的单链表
L = NULL; //任何时候都要记得设置头指针后要先指向NULL,避免脏数据
return true;
}
bool Empty(LinkList L) {
if (L == NULL) //头指针为NULL,则说明没有单链表可以指向,因此下面返回true表示成功判断单链表为空
return true;
else
return false;
}
void test()
{
LinkList L; //声明一个指向单链表的指针,注意此处并没有创建一个结点
InitList(L);
bool valueL = Empty(L);
printf("%d", valueL);
}
int main()
{
test();
return 0;
}
具体看注释