数据结构C语言版,建立一个顺序表,输入学号202300705048
时间: 2024-09-10 12:30:17 浏览: 54
在C语言中,我们通常会使用数组或者链表来创建一个简单的顺序表数据结构,存储学号这样的信息。这里以动态数组(一维数组)为例来演示如何插入一个学号:
```c
#include <stdio.h>
#include <stdlib.h> // 需要包含malloc函数
// 定义顺序表结构体
typedef struct {
int id; // 学号
int capacity; // 表的最大容量
int *data; // 数组存放学号
} SeqList;
// 初始化顺序表
SeqList* create_list(int size) {
SeqList* list = (SeqList*) malloc(sizeof(SeqList));
if (!list) {
printf("内存分配失败!\n");
return NULL;
}
list->id = 0; // 初始学号位置
list->capacity = size;
list->data = (int*) malloc(size * sizeof(int)); // 动态分配数组空间
if (!list->data) {
free(list); // 如果数据分配失败,释放已分配的内存
printf("内存分配失败!\n");
return NULL;
}
return list;
}
// 插入学号到列表末尾
void insert(SeqList* list, int new_id) {
if (list->id >= list->capacity - 1) { // 当满时需要扩容
list->capacity *= 2; // 扩容一倍
list->data = (int*) realloc(list->data, list->capacity * sizeof(int));
if (!list->data) {
printf("内存扩展失败!\n");
return;
}
}
list->data[list->id] = new_id; // 插入新学号
list->id++; // 更新下一个插入位置
}
int main() {
SeqList* list = create_list(10); // 创建初始容量为10的列表
if (list) {
insert(list, 202300705048); // 插入学号202300705048
printf("顺序表中最后一个学号是:%d\n", list->data[list->id - 1]); // 输出插入后的最后一个元素
free(list->data); // 释放数组内存
free(list); // 释放顺序表本身
}
return 0;
}
```
在这个例子中,我们首先创建了一个顺序表,并预留了空间。然后插入学号202300705048,当表满时会自动扩容。最后打印并释放内存。
阅读全文