用c语言定义并初始化一个顺序表。再定义一个包含整型数据的数组ElemType data[9] = { 11,-22,33,-3,-88,21,77,0,-9 };并将该整型数组中的所有数据插入前面定义的顺序表,并在顺序表中完成顺序表的其他基本操作(输出、删除、查找、取值)。
时间: 2024-10-08 12:04:03 浏览: 36
在C语言中,我们通常使用结构体和指针来定义顺序表。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体
typedef struct Node {
int value;
struct Node* next;
} Node;
// 初始化顺序表
Node* initList() {
Node* list = (Node*)malloc(sizeof(Node)); // 分配第一个节点
list->value = -1; // 非空标记
list->next = NULL;
return list;
}
// 插入元素到顺序表
void insert(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->value = value;
newNode->next = *head;
*head = newNode;
}
// 输出顺序表中的元素
void printList(Node* head) {
while (head != NULL) {
printf("%d ", head->value);
head = head->next;
}
printf("\n");
}
// 删除顺序表中的元素(这里仅删除第一个匹配的)
int deleteValue(Node** head, int value) {
if (*head == NULL || (*head)->value != value)
return 0;
Node* temp = *head;
*head = (*head)->next;
free(temp); // 释放已删除节点
return 1;
}
// 查找并返回顺序表中的元素是否存在
int searchList(Node* head, int value) {
Node* current = head;
while (current != NULL) {
if (current->value == value)
return 1;
current = current->next;
}
return 0;
}
int main() {
Node* list = initList();
// 将数组data的数据插入顺序表
for (int i = 0; i < 9; ++i) {
insert(&list, data[i]);
}
// 输出顺序表
printList(list);
// 删除元素示例(删除第一个出现的11)
if (deleteValue(&list, 11)) {
printf("After deleting 11: ");
printList(list);
}
// 查找元素示例
if (searchList(list, 33))
printf("33 exists in the list.\n");
return 0;
}
```
阅读全文