C言語で線形リストを作成するにはどうすればよいですか。
C言語では、構造体とポインタを使用して線形表を作成できます。簡単なサンプルコードを以下に示します。
#include <stdio.h>
#include <stdlib.h>
// 定义线性表的结构体
typedef struct {
int* data; // 数据存储区
int length; // 线性表长度
} List;
// 创建线性表
List* createList(int length) {
// 分配内存空间
List* list = (List*) malloc(sizeof(List));
if (list == NULL) {
printf("内存分配失败\n");
return NULL;
}
// 分配数据存储区的空间
list->data = (int*) malloc(length * sizeof(int));
if (list->data == NULL) {
printf("内存分配失败\n");
free(list); // 释放之前分配的内存
return NULL;
}
// 初始化线性表长度
list->length = length;
return list;
}
int main() {
int length;
printf("请输入线性表的长度:");
scanf("%d", &length);
// 创建线性表
List* list = createList(length);
if (list == NULL) {
return 0;
}
printf("线性表创建成功,长度为%d\n", list->length);
// 释放内存
free(list->data);
free(list);
return 0;
}
リスト構造体`List`は、整数ポインタ`data`でデータを格納し、整数変数`length`でリストの長さを表す線形表を表現しています。`createList`関数は線形表を作成し、動的メモリ割り当てでデータ領域に領域を割り当てます。最後に、`main`関数で`createList`関数を呼び出して線形表を作成し、作成に成功すると線形表の長さを出力し、割り当てたメモリ領域を手動で解放する必要があります。