用c++实现① 随机产生一组两位数整数,建立线性表的单向链式存储结构。 ② 实现该线性链表的遍历。 ③ 在该链表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该链表中删除或插入指定元素。 并实验
时间: 2024-10-19 14:04:30 浏览: 44
在C++中,首先我们需要创建一个包含随机生成两位数的节点类,并用它来构建单向链表。这里是一个简单的示例:
1. **随机生成两位数整数节点**:
```cpp
#include <iostream>
#include <cstdlib> // 包含random库
class Node {
public:
int num;
Node* next;
Node(int n) : num(n), next(nullptr) {}
};
```
2. **生成链表并存储随机数**:
```cpp
Node* createRandomList(size_t length) {
srand(time(0)); // 设置随机种子
Node* head = nullptr;
for (size_t i = 0; i < length; ++i) {
int randomNum = rand() % 90 + 10; // 生成10到99之间的随机数
Node* newNode = new Node(randomNum);
if (!head) {
head = newNode;
} else {
newNode->next = head;
head = newNode;
}
}
return head;
}
```
3. **链表的遍历**:
```cpp
void traverse(Node* node) {
while (node != nullptr) {
std::cout << node->num << " ";
node = node->next;
}
std::cout << "\n";
}
```
4. **查找元素**:
```cpp
bool search(Node* head, int target) {
Node* current = head;
while (current != nullptr) {
if (current->num == target) {
std::cout << "Found " << target << std::endl;
return true;
}
current = current->next;
}
std::cout << "Not found" << std::endl;
return false;
}
```
5. **插入和删除元素**:
```cpp
// 插入元素
void insert(Node*& head, int value, size_t position) {
Node* newNode = new Node(value);
if (position == 0) {
newNode->next = head;
head = newNode;
} else {
Node* prev = head;
for (size_t i = 0; i < position - 1 && prev != nullptr; ++i) {
prev = prev->next;
}
if (prev != nullptr) {
newNode->next = prev->next;
prev->next = newNode;
}
}
}
// 删除元素
void remove(Node*& head, int value) {
if (head == nullptr || head->num != value) {
return;
}
Node* temp = head;
head = head- 遍历链表展示所有数字
- 查找指定数字
- 插入新元素
- 删除指定元素(如果存在)
阅读全文