请编写程序实现链表的建立、插入、删除、遍历的基本运算,其中顺序表中每一个数据元素的类型定义为学生信息的结构体,包括学号、姓名和成绩。
时间: 2023-05-19 11:01:11 浏览: 139
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
好的,以下是链表的建立、插入、删除、遍历的基本运算的程序实现,其中顺序表中每一个数据元素的类型定义为学生信息的结构体,包括学号、姓名和成绩:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct student {
int id;
char name[20];
int score;
struct student *next;
} Student;
Student *createList() {
Student *head = (Student *)malloc(sizeof(Student));
head->next = NULL;
return head;
}
void insert(Student *head, int id, char *name, int score) {
Student *p = (Student *)malloc(sizeof(Student));
p->id = id;
strcpy(p->name, name);
p->score = score;
p->next = head->next;
head->next = p;
}
void delete(Student *head, int id) {
Student *p = head->next;
Student *pre = head;
while (p != NULL) {
if (p->id == id) {
pre->next = p->next;
free(p);
return;
}
pre = p;
p = p->next;
}
}
void traverse(Student *head) {
Student *p = head->next;
while (p != NULL) {
printf("id: %d, name: %s, score: %d\n", p->id, p->name, p->score);
p = p->next;
}
}
int main() {
Student *head = createList();
insert(head, 1, "Tom", 90);
insert(head, 2, "Jerry", 80);
insert(head, 3, "Bob", 70);
traverse(head);
delete(head, 2);
traverse(head);
return 0;
}
```
以上程序实现了链表的建立、插入、删除、遍历的基本运算,其中顺序表中每一个数据元素的类型定义为学生信息的结构体,包括学号、姓名和成绩。
阅读全文