C++ 单链表操作:创建、删除、插入、查找示例
#include <iostream>
struct Node {
int data;
Node* next;
};
int main() {
Node* head = nullptr;
Node* current = nullptr;
// 输入元素并创建链表
int num;
while (std::cin >> num) {
if (num == 0) {
break;
}
Node* newNode = new Node;
newNode->data = num;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
current = newNode;
} else {
current->next = newNode;
current = newNode;
}
}
// 输出链表元素
current = head;
while (current != nullptr) {
std::cout << current->data << ' ';
current = current->next;
}
std::cout << std::endl;
// 删除第一个元素
Node* temp = head;
head = head->next;
delete temp;
// 输出删除元素后的链表
current = head;
while (current != nullptr) {
std::cout << current->data << ' ';
current = current->next;
}
std::cout << std::endl;
// 输出链表长度
int length = 0;
current = head;
while (current != nullptr) {
length++;
current = current->next;
}
std::cout << length << std::endl;
// 在第二个元素处插入新元素100
Node* newNode = new Node;
newNode->data = 100;
newNode->next = head->next;
head->next = newNode;
// 输出第一个元素100所在位置
int position = 1;
current = head;
while (current != nullptr) {
if (current->data == 100) {
break;
}
position++;
current = current->next;
}
std::cout << position << std::endl;
// 释放内存
current = head;
while (current != nullptr) {
temp = current;
current = current->next;
delete temp;
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/o8Fm 著作权归作者所有。请勿转载和采集!