生成c++代码(建立一个单链表,随机产生10个100以内的整数,并在屏幕上显示单链表中的10个整数,然后删除值为a的结点,若不存在a,则把a插入到表尾,显示更新后的单链表;)
时间: 2024-05-04 11:16:06 浏览: 46
好的,您的问题是如何生成C++代码以建立一个单链表,随机产生10个100以内的整数,并在屏幕上显示单链表中的10个整数,然后删除值为a的结点,若不存在a,则把a插入到表尾,显示更新后的单链表。
以下是C++代码示例:
```
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
struct ListNode{
int val;
ListNode *next;
ListNode(int x):val(x), next(NULL){}
};
void displayList(ListNode *head){
while(head){
cout << head->val << " ";
head = head->next;
}
cout << endl;
}
void deleteNode(ListNode *&head, int a){
ListNode *dummy = new ListNode(-1);
dummy->next = head;
ListNode *prev = dummy;
while(head){
if(head->val == a){
prev->next = head->next;
delete head;
head = prev->next;
return;
}
prev = head;
head = head->next;
}
prev->next = new ListNode(a);
return;
}
int main(){
srand(time(NULL));
ListNode *head = new ListNode(-1);
ListNode *curr = head;
for(int i = 0; i < 10; i++){
int num = rand() % 100 + 1;
curr->next = new ListNode(num);
curr = curr->next;
}
displayList(head->next);
int a;
cout << "Enter a value to be deleted or inserted: ";
cin >> a;
deleteNode(head->next, a);
displayList(head->next);
return 0;
}
```
该代码首先定义了一个结构体 ListNode,它包含一个整数值和指向下一个节点的指针。然后它定义了一个打印链表的函数 displayList 和删除给定值节点的函数 deleteNode。在主函数中,它首先生成10个随机整数并将它们插入单链表中。然后它显示了链表中的整数,然后要求用户输入要删除或插入的值。最后,它在执行适当操作后再次显示更新后的链表。
阅读全文