Status CreateList(LinkList L ) 函数从键盘读入线性表中数据元素个数n,再依次读入n 个数据元素。若读入的n 是负值,则视为读入0;取n个数,用c语言创建单链表,用代码写出来
时间: 2024-09-27 20:10:22 浏览: 51
Status CreateList(LinkList L) 函数的作用是在 C 语言中创建一个单链表。这个函数首先会通过键盘获取用户输入的数据元素个数 n。如果输入的是负值,它会被当作0处理。然后,函数会循环 n 次(如果 n > 0),每次读入一个数据元素,并将该元素作为新节点添加到链表的末尾。
以下是这个函数的一个基本实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建链表节点并插入数据
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (!newNode) {
printf("内存分配失败\n");
return NULL;
}
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// 添加节点到链表
void appendToList(Node** head, int data) {
if (*head == NULL) {
*head = createNode(data);
} else {
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = createNode(data);
}
}
Status CreateList(LinkList* L) {
int n;
printf("请输入数据元素个数(负值表示0): ");
scanf("%d", &n);
// 如果 n 负值,设置为0
n = n >= 0 ? n : 0;
// 初始化链表头指针
*L = NULL;
for (int i = 0; i < n; i++) {
int data;
printf("请输入第 %d 个元素: ", i + 1);
scanf("%d", &data);
appendToList(&(*L), data); // 将数据添加到链表末尾
}
return (*L != NULL) ? STATUS_SUCCESS : STATUS_FAILURE; // 返回成功或失败状态
}
```
在这个代码中,`STATUS_SUCCESS` 和 `STATUS_FAILURE` 是自定义的状态标识符,用于表示操作是否成功。
阅读全文