线性表结构调用函数c语言实现
时间: 2024-10-10 11:01:29 浏览: 45
数据结构_线性表的c语言实现.txt
线性表结构在C语言中通常通过数组或链表来实现。这里我们以单向链表为例,它包含一个节点类型,每个节点包含数据和指向下一个节点的指针。以下是创建链表、插入元素、删除元素等基本操作的一些函数实现:
```c
// 定义链表节点结构体
typedef struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
} Node;
// 创建一个新的链表节点
Node* createNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode != NULL) {
newNode->data = value;
newNode->next = NULL;
return newNode;
}
return NULL; // 如果内存分配失败,返回NULL
}
// 在链表末尾添加新节点
void appendToList(Node** headRef, int value) {
Node* newNode = createNode(value);
if (newNode == NULL) return; // 检查是否成功分配
if (*headRef == NULL) { // 链表为空,直接设置头结点
*headRef = newNode;
return;
}
// 非空链表,找到最后一个节点并连接
Node* lastNode = *headRef;
while (lastNode->next != NULL)
lastNode = lastNode->next;
lastNode->next = newNode;
}
// 删除指定值的节点(简单查找版本)
void deleteNodeWithValue(Node** headRef, int value) {
Node* temp = *headRef, *prev = NULL;
if (temp != NULL && temp->data == value) {
*headRef = temp->next;
free(temp); // 释放已删除的节点
return;
}
while (temp != NULL && temp->data != value) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return; // 没有找到匹配的节点
prev->next = temp->next;
free(temp); // 释放找到的节点
}
//
阅读全文