编写程序Node.h实现例9-5的节点类,并编写测试程序实现节点的基本操作。
时间: 2024-05-14 16:16:57 浏览: 15
好的,我会尽力回答您的问题。以下是一个Node.h文件的基本骨架:
```c++
#include<iostream>
using namespace std;
class Node{
public:
// 构造函数
Node(int data = 0, Node* next = nullptr)
:m_data(data), m_pNext(next) {}
// 获取节点值
int GetData() const {
return m_data;
}
// 设置节点值
void SetData(int data) {
m_data = data;
}
// 获取下一个节点指针
Node* GetNext() const {
return m_pNext;
}
// 设置下一个节点指针
void SetNext(Node* next) {
m_pNext = next;
}
private:
int m_data; // 存储节点数据
Node* m_pNext; // 指向下一个节点的指针
};
```
这是一个节点类的基本实现,包含一个构造函数、获取和设置节点值的方法,以及获取和设置下一个节点指针的方法。测试程序可以通过创建节点对象并使用相应的方法来测试节点的基本操作,以下是一个使用示例:
```c++
#include<iostream>
#include "Node.h" // 引入节点类头文件
using namespace std;
int main(){
// 创建节点对象
Node node1(1);
Node node2(2);
Node node3(3);
// 设置节点之间的关系
node1.SetNext(&node2);
node2.SetNext(&node3);
// 获取节点值并输出
cout << "node1 value is: " << node1.GetData() << endl;
cout << "node2 value is: " << node2.GetData() << endl;
cout << "node3 value is: " << node3.GetData() << endl;
// 获取下一个节点指针并输出
cout << "node1 next node pointer is: " << node1.GetNext() << endl;
cout << "node2 next node pointer is: " << node2.GetNext() << endl;
cout << "node3 next node pointer is: " << node3.GetNext() << endl;
return 0;
}
```
上面的代码将创建三个节点对象,并将第一个节点的下一个节点指针设为第二个节点,第二个节点的下一个节点指针设为第三个节点。然后,使用各种方法来测试节点对象的值和指针。