用c++解决:主函数定义一个node数组构成的含6个结点的静态链表,6个结点的值依次为10,20,30,40,50,60。调用print输出该链表。主函数再输入6个整数到该链表的结点中(直接找到结点然后输入数据到结点的val成员中)
时间: 2023-06-13 08:06:09 浏览: 52
下面是用C++实现的代码:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 6;
struct Node {
int val;
int next;
};
void print(Node list[]) {
int p = 0;
while(p != -1) {
cout << list[p].val << " ";
p = list[p].next;
}
cout << endl;
}
int main() {
Node list[MAXSIZE] = {{10, 1}, {20, 2}, {30, 3}, {40, 4}, {50, 5}, {60, -1}};
print(list);
int index;
cout << "Input index to set value: ";
cin >> index;
cout << "Input value to set: ";
cin >> list[index].val;
print(list);
return 0;
}
```
解释一下代码:
首先定义了一个 `Node` 结构体,包含两个成员变量:`val` 表示结点的值,`next` 表示下一个结点的索引。然后定义了一个 `print` 函数,用于输出整个链表。主函数中定义了一个含6个结点的静态链表,值为10,20,30,40,50,60。调用 `print` 函数输出该链表。
接下来,用户输入一个结点的索引,然后输入要设置的值。通过 `list[index].val` 可以直接访问该结点的值,修改它的值即可。最后再次调用 `print` 函数输出修改后的链表。