① 创建单链表,函数原型为: struct List * H_creat_list();
实现方法如下:
struct List * H_creat_list()
{// 分配内存空间,用于存储新的结点
struct List *new_node = (struct List *)malloc(sizeof(struct List));
// 判断是否分配成功
if (new_node == NULL)
{
printf("内存分配失败!\n");
exit(1);
}
// 输入结点信息
printf("输入学号:");
scanf("%d", &new_node->num);
printf("输入姓名:");
scanf("%s", new_node->name);
// 新结点的 next 指针指向 NULL
new_node->next = NULL;
// 返回新结点的地址
return new_node;
}
② 输出单链表,函数原型为: void print(struct List *head);
实现方法如下:
void print(struct List *head)
{
// 定义指针变量 p,用于遍历单链表
struct List *p = head;
// 遍历单链表,输出结点信息
while (p != NULL)
{
printf("学号:%d,姓名:%s\n", p->num, p->name);
p = p->next;
}
}
③ 在一个单链表中指定的位置 k 插入一个结点,函数原型为: struct List *insert_Node_k(struct List *head, int num ,char name[],int k);
实现方法如下:
``` struct List *insert_Node_k(struct List *head, int num ,char name[],int k) { // 定义指针变量 p,用于遍历单链表 struct List *p = head; // 分