完成顺序线性表的结构定义,以及相关的操作方法,包括顺序表的初始化、元素插入、元素删除,并通过具体的数据处理结果展示这些方法的运行情况,用C语言实现
时间: 2024-09-17 09:02:26 浏览: 85
在C语言中,我们可以创建一个顺序线性表(也称为数组列表)来存储一组数据。首先,我们需要定义一个结构体来表示表中的元素,然后定义一个动态数组作为表的容器。以下是基础的顺序线性表结构定义及常见操作:
```c
#include <stdio.h>
#include <stdlib.h>
// 结构体定义,代表顺序线性表中的一个元素
typedef struct Node {
int data; // 存储数据
struct Node* next; // 指向下一个节点
} ListNode;
// 初始化顺序线性表
ListNode* createList() {
return (ListNode*)malloc(sizeof(ListNode));
}
// 插入元素到顺序线性表
void insertNode(ListNode** head, int value) {
ListNode* newNode = createList();
newNode->data = value;
newNode->next = *head;
*head = newNode;
}
// 删除指定位置的元素
void deleteNode(ListNode** head, int index) {
if (*head == NULL || index <= 0)
return;
ListNode* temp = *head;
for (int i = 0; i < index - 1 && temp != NULL; i++)
temp = temp->next;
if (temp == NULL)
return;
ListNode* toDelete = temp->next;
temp->next = toDelete->next;
free(toDelete);
}
// 显示顺序线性表内容
void printList(ListNode* head) {
while (head != NULL) {
printf("%d ", head->data);
head = head->next;
}
printf("\n");
}
// 示例
int main() {
ListNode* head = createList(); // 初始化空表
// 插入元素
insertNode(&head, 1);
insertNode(&head, 2);
insertNode(&head, 3);
// 打印初始列表
printList(head); // 输出: 1 2 3
// 删除第二个元素
deleteNode(&head, 2);
// 再次打印列表
printList(head); // 输出: 1 3
return 0;
}
```
在这个例子中,我们定义了一个简单的顺序线性表,并实现了初始化(`createList`)、插入(`insertNode`)和删除(`deleteNode`)操作。`printList`函数用于展示当前表的内容。
阅读全文