随机产生一组两位数整数,建立线性表的单向链式存储结构,实现该线性链表的遍历,在该链表中查找某一元素,查找成功显示查找元素,否则显示查找失败,在该链表中删除或插入指定元素
时间: 2024-09-28 07:15:29 浏览: 42
随机生成一组两位数整数并用单向链表存储可以分为以下几个步骤:
1. 创建节点类(Node),包含整数值(int value)和指向下一个节点的指针(Node *next)。
2. 生成链表:循环生成一定数量的随机整数(例如10到99),创建新节点并将它们链接在一起。初始时,将第一个节点设为头结点(head)。
```c++
Node* generateList() {
srand(time(0));
Node* head = new Node{rand() % 90 + 10, nullptr};
for (int i = 1; i < numElements; ++i) {
Node* newNode = new Node{rand() % 90 + 10, nullptr};
newNode->next = head;
head = newNode;
}
return head;
}
```
3. 遍历链表:定义一个函数(如traverseList)用于遍历链表,打印每个节点的值。
```c++
void traverseList(Node* node) {
while (node != nullptr) {
std::cout << node->value << " ";
node = node->next;
}
std::cout << std::endl;
}
```
4. 查找元素:编写一个函数(如searchElement)接受用户输入的数字,并沿着链表搜索。如果找到,返回true并打印元素;否则返回false。
```c++
bool searchElement(Node* node, int target) {
while (node != nullptr) {
if (node->value == target) {
std::cout << "查找成功: " << target << std::endl;
return true;
}
node = node->next;
}
std::cout << "查找失败" << std::endl;
return false;
}
```
5. 删除或插入元素:同样地,分别编写deleteElement和insertElement函数,前者接收目标元素删除它,后者则接收新的元素和插入位置。注意操作链表时需要处理边界条件和空节点。
```c++
// 删除元素
void deleteElement(Node*& head, int target) {
// 省略详细实现...
}
// 插入元素
void insertElement(Node*& head, int value, int position) {
// 省略详细实现...
}
```
阅读全文