前言
单链表:是指一个结构体,该结构体的最后一个元素,是一个指向该结构体类型的指针,这个指针,指向下一个该类型的结构体,这样形成一个具有n个这种结构体元素的链式存储结构体链表,链表中的每一个节点都是一个该结构体,并且最后一个元素都是一个next指针,指向下一个节点。
遍历该结构体链表:
只需先判断一下该链表的头节点是否为空:if(NULL==head)return;
然后声明一个该结构体元素,用头节点的next指针指向该元素:
Student* n = head->next;
之后开始循环即可:
while(n)
{
if(n->id == id)
{
printf(“%d %d %s %s\n”,n->id,n->age,n->name,n->tel);
}
n=n->next;
}
一、代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct Student
{
int id;
int age;
char name[30];
char tel[12];
struct Student* next;
} Student;
///
/// 显示欢迎信息
///
int menu();
///
/// 初始化学生链表
///
/// 指向头节点指针head的指针
void initStudent(Student** s);
///
/// 插入一个学生
///
/// 学生链表的头指针
/// 插入的位置
/// 待插入的学生
void InsertStudent(Student* h, int num, Student s);
///
/// 增加1个学生
///
void addStudent(Student* h);
///定位学生s在链表h中的位置
int LocateStudent(Student* h, Student s);
///
/// 显示学生信息
///
void showStudent(Student* head);
///
/// 删除学生信息
///
/// 学生链表的头指针
void delSt