C++ 建立一个顺序表,随机产生10个100以内的整数,并按要求完成: (1)编写显示函数,在屏幕上显示顺序表中的10个整数; (2)编写查找函数,从键盘输入任一整数在顺序表中查找,若找到,返回该元素在顺序表中的位置,否则提示无此元素; (3)编写插入函数,从键盘输入待插入元素及插入位置,将完成插入后的顺序表输出; (4)编写删除函数,从键盘输入待删除元素位置,将该位置元素删除后的顺序表输出。
时间: 2024-03-22 16:37:31 浏览: 92
好的,我来回答你的问题。
这是一个具体的编程问题,需要用到 C++ 语言。下面是实现顺序表的代码,包括随机产生10个100以内的整数、显示函数、查找函数、插入函数和删除函数。
```c++
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
const int MaxSize = 100;
typedef struct {
int data[MaxSize];
int length;
} SqList;
void InitList(SqList &L) { // 初始化顺序表
L.length = 0;
}
void CreateList(SqList &L, int n) { // 随机产生n个100以内的整数
srand(time(0)); // 用系统当前时间初始化随机数生成器
for (int i = 0; i < n; i++) {
L.data[i] = rand() % 100 + 1; // 生成1-100的随机整数
}
L.length = n;
}
void DisplayList(SqList L) { // 显示顺序表
for (int i = 0; i < L.length; i++) {
cout << L.data[i] << " ";
}
cout << endl;
}
int LocateElem(SqList L, int x) { // 查找元素
for (int i = 0; i < L.length; i++) {
if (L.data[i] == x) {
return i + 1; // 返回元素位置
}
}
return 0; // 没有找到,返回0
}
bool ListInsert(SqList &L, int i, int x) { // 插入元素
if (i < 1 || i > L.length + 1 || L.length >= MaxSize) {
return false; // 位置不合法或顺序表已满,插入失败
}
for (int j = L.length - 1; j >= i - 1; j--) {
L.data[j + 1] = L.data[j]; // 后移元素
}
L.data[i - 1] = x; // 插入元素
L.length++; // 长度加1
return true; // 插入成功
}
bool ListDelete(SqList &L, int i) { // 删除元素
if (i < 1 || i > L.length) {
return false; // 位置不合法,删除失败
}
for (int j = i; j < L.length; j++) {
L.data[j - 1] = L.data[j]; // 前移元素
}
L.length--; // 长度减1
return true; // 删除成功
}
int main() {
SqList L;
int x, i;
InitList(L);
CreateList(L, 10);
cout << "生成的随机序列为:";
DisplayList(L);
cout << "请输入要查找的元素:";
cin >> x;
int pos = LocateElem(L, x);
if (pos == 0) {
cout << "没有找到该元素!" << endl;
} else {
cout << "该元素在顺序表中的位置为:" << pos << endl;
}
cout << "请输入要插入的元素及插入位置:";
cin >> x >> i;
if (ListInsert(L, i, x)) {
cout << "插入后的顺序表为:";
DisplayList(L);
} else {
cout << "插入失败!" << endl;
}
cout << "请输入要删除的元素位置:";
cin >> i;
if (ListDelete(L, i)) {
cout << "删除后的顺序表为:";
DisplayList(L);
} else {
cout << "删除失败!" << endl;
}
return 0;
}
```
注意,这里使用的是顺序表来实现,也可以使用链表等其他数据结构。同时,这个程序还可以不断完善,加入更多操作,比如排序、合并等。
阅读全文