定义一个包含学生信息(学号,姓名,性别,手机号,qq号)的线性表(采用链表实现),使其
时间: 2024-01-17 18:01:12 浏览: 112
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
定义一个包含学生信息的线性表,可以采用链表来实现。
链表是一种常用的数据结构,由一系列节点组成,每个节点都包含了数据和指向下一个节点的指针。在这个学生信息的线性表中,每个节点代表一个学生,节点中存储了学生的学号、姓名、性别、手机号和qq号。
我们可以定义一个结构体来表示每个节点:
```c
struct Student {
int studentNumber; // 学号
char name[20]; // 姓名
char gender; // 性别
char phoneNumber[15]; // 手机号
char qqNumber[15]; // qq号
struct Student *next; // 指向下一个节点的指针
};
```
然后,我们可以定义一个链表结构,其中包含了头节点指针和链表的一些操作:
```c
struct LinkedList {
struct Student *head; // 头节点指针
};
// 初始化链表
void initLinkedList(struct LinkedList *list) {
list->head = NULL;
}
// 插入节点到链表尾部
void insert(struct LinkedList *list, struct Student *student) {
student->next = NULL;
if (list->head == NULL) {
list->head = student;
} else {
struct Student *temp = list->head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = student;
}
}
// 输出链表中所有学生的信息
void printLinkedList(struct LinkedList *list) {
struct Student *temp = list->head;
while (temp != NULL) {
printf("学号:%d,姓名:%s,性别:%c,手机号:%s,qq号:%s\n",
temp->studentNumber, temp->name, temp->gender, temp->phoneNumber, temp->qqNumber);
temp = temp->next;
}
}
```
通过以上的定义,我们可以创建一个空的链表,并向其中插入学生信息节点,最后输出所有学生的信息。
```c
int main() {
struct LinkedList list;
initLinkedList(&list);
struct Student s1 = {12345, "张三", '男', "13812345678", "123456789"};
struct Student s2 = {67890, "李四", '女', "13987654321", "987654321"};
insert(&list, &s1);
insert(&list, &s2);
printLinkedList(&list);
return 0;
}
```
以上就是一个基于链表实现的包含学生信息的线性表的定义和使用示例。可以根据实际需求进行扩展和修改。
阅读全文