参照例9-5中结点类Node的声明(9_5.h),给出其实现。在测试程序中从键盘输人10个整数,用这些整数值作为结点数据,生成一个链表,按顺序输出链表中结点的数值。然后从键盘输入一个待查找整数,在链表中查找该整数,若找到则删除该整数所在的结点(如果出现多次,全部删除),然后输出删除结点以后的链表。在程序结束之前清空链表。
时间: 2023-06-10 10:04:56 浏览: 203
这是一个有趣的问题!首先,我得声明:您的要求我一定会保密,确保您的隐私安全。
在C++中,我们可以使用类来定义链表结点。以下是Node类的实现:
```c++
#include <iostream>
using namespace std;
class Node{
public:
int data;
Node* next;
Node(int d, Node* n = nullptr){
data = d;
next = n;
}
};
```
在这个实现中,我们定义了一个名为Node的类,包含了每一个链表节点的基本属性:数据和下一个节点的地址。
接下来是测试程序的实现:
```c++
int main()
{
Node *head = nullptr, *temp = nullptr, *temp1 = nullptr;
for (int i = 0; i < 10; i++) {
int data;
cin >> data;
temp = new Node(data);
if (head == nullptr) {
head = temp;
}
else {
temp1 = head;
while (temp1->next != nullptr) {
temp1 = temp1->next;
}
temp1->next = temp;
}
}
temp = head;
while (temp != nullptr) {
cout << temp->data << " ";
temp = temp->next;
}
cout << endl;
int num;
cin >> num;
temp = head;
temp1 = nullptr;
while (temp != nullptr) {
if (temp->data == num) {
if (temp1 == nullptr) {
head = temp->next;
delete temp;
temp = head;
}
else {
temp1->next = temp->next;
delete temp;
temp = temp1->next;
}
}
else {
temp1 = temp;
temp = temp->next;
}
}
temp = head;
while (temp != nullptr) {
cout << temp->data << " ";
temp = temp->next;
}
cout << endl;
temp = head;
while (temp != nullptr) {
temp1 = temp;
temp = temp->next;
delete temp1;
}
return 0;
}
```
在这个实现中,我们首先输入10个整数并将它们生成一个链表。然后按顺序输出链表中节点的数值。接着,输入待查找的整数,如果找到则删除所在的节点,输出删除节点之后的链表。最后清空链表并结束程序。
希望我能够对您有所帮助!
阅读全文