前言
学习链表之前,先来看几个术语:
首节点:存放第一个有效数据的节点;
尾节点:存放最后一个有效数据的节点;
头节点:头节点的数据类型与首节点的数据类型相同,并且头节点是首节点前面的那个节点,并不存放有效数据;头节点的存在只是为了方便链表的操作。
头指针:指向头节点的指针;
尾指针:指向尾节点的指针。
链表的基本操作
1. 节点的构造
#include
#include
#include
#define LEN sizeof(struct stu)
struct stu
{
//数据域
char num[10];
char name[20];
float score;
//指针域
struct stu * next;
};
2. 建立链表
//建立链表
struct stu * create(){
//声明头指针,p1和p2两个指针
struct stu * head;
struct stu * p1, *p2;
//建立头结点
head = (struct stu *) malloc(LEN);
head->next = NULL; //头指针指向的头结点的指针域为空
p1 = head; //把头指针的指向赋给指针p1,即p1指向头结点
p2 = (struc