用c++实现线性表的单链式表示及插入及删除操作
时间: 2024-10-17 13:02:52 浏览: 27
在C++中,线性表的单链式表示通常通过定义一个节点结构体(Node)来实现,每个节点包含数据域和指向下一个节点的指针。以下是简单的链表头结点(head)以及插入和删除操作的示例:
```cpp
// 定义链表节点结构体
struct Node {
int data; // 数据域
Node* next; // 指向下一个节点的指针
};
// 初始化一个空链表
Node* createList() {
return nullptr;
}
// 插入操作 (在链表末尾)
void insert(Node*& head, int value) {
if (head == nullptr) {
head = new Node{value, nullptr};
} else {
Node* newNode = new Node{value, nullptr}; // 新建节点
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 删除操作 (指定位置删除)
void deleteNode(Node*& head, int position) {
if (head == nullptr || position <= 0) {
return; // 如果链表为空或位置非法,直接返回
}
Node* current = head;
if (position == 1) { // 首节点
head = head->next;
delete current;
return;
}
for (int i = 1; current != nullptr && i < position - 1; ++i) {
current = current->next;
}
if (current == nullptr) {
return; // 未找到指定位置的节点
}
Node* temp = current->next;
current->next = temp->next;
delete temp;
}
阅读全文