如何检索给定索引处的值?
How to retrieve the value at a given index?
我对编程还很陌生,我正在从事一个涉及移动节点的项目。如何在用户输入表示的特定位置获取节点并将其值增加一?为了更好地解释:
这是我的代码...或者我的尝试:
#include <iostream>
struct Node {
int data;
struct Node* next;
};
class LinkedList {
private:
Node* head;
public:
LinkedList()
{
head = NULL;
}
void print()
{
Node* current = head;
if (head != nullptr)
{
do
{
std::cout << current->data << " ";
current = current->next;
}
while (current != head);
}
}
};
int main()
{
LinkedList link_one;
int nodes;
std::cout << "nodes ";
std::cin >> nodes;
for (int index = 0; index < nodes; index++){
link_one.print();
}
link_one.print();
std::cout << std::endl;
}
尝试遍历
其实不用写答案,但是...我是新人:)
你的函数place_node应该添加一个参数:
int place_node(int idx)
然后...从你的头节点遍历"idx"次,修改当前节点的值,就这样。
这里是函数 place_node 的完整代码以实现您的目标:
int place_node(int idx) //no need to return
{
Node* current = head;
int count, index = 0;
for(int i=0;i<idx;++i) current = current->next;
current->data+=1;
return 1; // no need to return
}
我对编程还很陌生,我正在从事一个涉及移动节点的项目。如何在用户输入表示的特定位置获取节点并将其值增加一?为了更好地解释:
这是我的代码...或者我的尝试:
#include <iostream>
struct Node {
int data;
struct Node* next;
};
class LinkedList {
private:
Node* head;
public:
LinkedList()
{
head = NULL;
}
void print()
{
Node* current = head;
if (head != nullptr)
{
do
{
std::cout << current->data << " ";
current = current->next;
}
while (current != head);
}
}
};
int main()
{
LinkedList link_one;
int nodes;
std::cout << "nodes ";
std::cin >> nodes;
for (int index = 0; index < nodes; index++){
link_one.print();
}
link_one.print();
std::cout << std::endl;
}
尝试遍历
其实不用写答案,但是...我是新人:)
你的函数place_node应该添加一个参数:
int place_node(int idx)
然后...从你的头节点遍历"idx"次,修改当前节点的值,就这样。
这里是函数 place_node 的完整代码以实现您的目标:
int place_node(int idx) //no need to return
{
Node* current = head;
int count, index = 0;
for(int i=0;i<idx;++i) current = current->next;
current->data+=1;
return 1; // no need to return
}