单向链表获取第i个结点的数据元素
时间: 2023-05-29 07:03:11 浏览: 224
3-2 试编写一个算法,在带表头结点的单链表中寻找第i个结点.doc
要获取单向链表中第i个结点的数据元素,可以按照以下步骤进行操作:
1. 定义一个计数器count,初始化为1,表示当前遍历到的结点是第一个结点。
2. 从单向链表的头结点开始遍历,遍历到第i个结点停止。
3. 在遍历过程中每经过一个结点,就将计数器count加1。
4. 当计数器count等于i时,表示已经找到了第i个结点,此时获取该结点的数据元素即可。
下面是一个示例代码:
```
// 定义单向链表结点的结构体
struct Node {
int data;
Node* next;
};
// 获取单向链表中第i个结点的数据元素
int getIthNodeData(Node* head, int i) {
int count = 1;
Node* p = head->next;
while (p != nullptr && count < i) {
p = p->next;
count++;
}
if (p == nullptr || count > i) {
// 第i个结点不存在
return -1;
} else {
// 返回第i个结点的数据元素
return p->data;
}
}
```
上面的代码中,参数head表示单向链表的头结点,参数i表示要获取的第i个结点的位置。如果第i个结点不存在,则返回-1。
阅读全文