取出单链表中i=3的元素的c++ 程序
时间: 2024-09-26 11:16:30 浏览: 30
在C++中,如果你有一个动态单链表(linked list),并且想要获取索引为3的节点,你需要遍历链表直到找到第四个元素,因为链表的索引是从0开始的。这里是一个简单的示例:
```cpp
#include <iostream>
// 定义链表节点结构体
struct Node {
int data;
Node* next;
};
// 创建新的节点函数
Node* createNode(int value) {
Node* newNode = new Node();
newNode->data = value;
newNode->next = nullptr; // 初始化为nullptr表示这是一个尾节点
return newNode;
}
// 插入节点到链表的函数
void insertAtEnd(Node** head, int value) {
if (*head == nullptr) { // 如果链表为空,创建头节点
*head = createNode(value);
} else {
Node* temp = *head;
while (temp->next != nullptr) { // 遍历至最后一个节点
temp = temp->next;
}
temp->next = createNode(value); // 在尾部插入新节点
}
}
// 获取并打印第i个元素的函数
void printElement(Node* head, int i) {
if (head == nullptr) {
std::cout << "链表为空,找不到位置为" << i << "的元素.\n";
return;
}
Node* current = head;
for (int index = 0; index < i; index++) {
if (current == nullptr) {
std::cout << "链表长度不足,无法访问索引为" << i << "的元素.\n";
break;
}
current = current->next;
}
if (current != nullptr) {
std::cout << "索引为3的元素值为: " << current->data << "\n";
}
}
int main() {
Node* head = nullptr; // 初始链表为空
// 添加一些元素以便演示
insertAtEnd(&head, 1);
insertAtEnd(&head, 2);
insertAtEnd(&head, 3);
insertAtEnd(&head, 4);
printElement(head, 3); // 输出索引为3的元素
return 0;
}
```
注意,这个程序假设链表已经初始化,并且有足够长。如果索引超出实际链表长度,会给出相应的提示。
阅读全文