1.单向链表:
在链表把同一类型的结构体变量看成一个节点,用节点来表示每个同类型结构体变量,而每个节点中有一个数据域和一个指针域(单向链表),在双向链表中,每个节点中有一个prior域,一个数据域,一个指针域。
节点:指针域存放着下一个结构体的地址。
指针域:里面存放的是下一个节点(结构体变量)的地址,
数据域:里面存放的是该结构体变量的数据。
prior域:里面存放的是钱一个节点的地址。
单向链表的声明:
typedef struct Node
{
data_t data;
struct Node *next;
}Node;
typedef struct Node *LinkList;
如何判断一个链表是空链表还是这个链表不存在?
对于链表来说,头指针是必要的,而头结点不是必要。
单向链表的方法:头插法,尾插法。
头插法:把每个新来的节点插到头节点的后面去。
LinkList CreateListHead(LinkList L,int n)//创建链表(头插法)
{
LinkList p;
int i;
srand(time(NULL));//初始化随机数种子
for(i=0;i<n;i++)
{
p = (LinkList)malloc(sizeof(Node));