本题实现单链表的创建、结点删除等基本操作。要求实现ListDelete 函数和DispList 函数。
时间: 2024-09-20 09:07:18 浏览: 41
数据结构单链表的基本操作实现(包含源代码)上机报告
5星 · 资源好评率100%
题目要求你编写两个函数,一个是用于实现链表的基本操作,特别是节点的删除,即`ListDelete`;另一个是展示链表内容的函数,比如遍历并打印出来,通常称为`DispList`。
首先,我们来看一下基本的链表结构。在C++中,可以使用结构体(struct)来表示链表的每个节点,包含一个数据元素和一个指向下一个节点的指针:
```cpp
// 链表节点结构体
struct ListNode {
int data; // 节点值
ListNode* next; // 指向下一个节点的指针
};
```
接下来,我们可以实现`ListDelete`函数,这个函数接收一个链表头节点的指针和一个目标值,如果找到该值则删除对应的节点,否则不做任何操作:
```cpp
ListNode* ListDelete(ListNode* head, int value) {
if (head == nullptr) return nullptr;
if (head->data == value) {
ListNode* temp = head;
head = head->next;
delete temp; // 删除当前节点
} else {
ListNode* current = head;
while (current->next != nullptr && current->next->data != value) {
current = current->next;
}
if (current->next != nullptr) {
current->next = current->next->next; // 将要删除节点的next指向前一个节点
delete current->next; // 删除下一个节点
}
}
return head;
}
```
`DispList`函数则是用于打印链表中的所有元素,这通常涉及到一个循环遍历过程:
```cpp
void DispList(ListNode* head) {
ListNode* temp = head;
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << std::endl;
}
```
这两个函数配合使用,就能完成链表的创建、节点删除以及显示链表内容的操作。
阅读全文