1.建立一个顺序表,随机产生10个100以内的整数,并按要求完成: (1)在屏幕上显示顺序表中的10个整数; (2)把值为b的元素插入到值为a的元素后面,若不存在a,则把b插入到表尾,显示更新后的顺序表; (3)删除值为a的元素,若不存在a,重新输入要删除的元素,找到后删除,并显示更新后的顺序表;用c语言和c++语言实现
时间: 2023-05-29 07:06:40 浏览: 96
C语言实现:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 10
typedef struct {
int data[MAX_SIZE];
int length;
} SqList;
void initList(SqList *L);
void displayList(SqList L);
void insertElement(SqList *L, int a, int b);
void deleteElement(SqList *L, int a);
int main() {
SqList L;
int a, b, del;
srand((unsigned) time(NULL));
initList(&L);
printf("初始顺序表:\n");
displayList(L);
printf("\n请输入要插入的元素:");
scanf("%d", &b);
printf("请输入要插入的位置:");
scanf("%d", &a);
insertElement(&L, a, b);
printf("\n插入后的顺序表:\n");
displayList(L);
printf("\n请输入要删除的元素:");
scanf("%d", &del);
deleteElement(&L, del);
printf("\n删除后的顺序表:\n");
displayList(L);
return 0;
}
void initList(SqList *L) {
int i;
for (i = 0; i < MAX_SIZE; i++) {
L->data[i] = rand() % 100;
}
L->length = MAX_SIZE;
}
void displayList(SqList L) {
int i;
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
}
void insertElement(SqList *L, int a, int b) {
int i, j;
if (L->length == MAX_SIZE) {
printf("\n表已满,无法插入元素!\n");
return;
}
for (i = 0; i < L->length; i++) {
if (L->data[i] == a) {
for (j = L->length - 1; j >= i + 1; j--) {
L->data[j + 1] = L->data[j];
}
L->data[i + 1] = b;
L->length++;
return;
}
}
L->data[L->length] = b;
L->length++;
}
void deleteElement(SqList *L, int a) {
int i, j;
for (i = 0; i < L->length; i++) {
if (L->data[i] == a) {
for (j = i; j < L->length - 1; j++) {
L->data[j] = L->data[j + 1];
}
L->length--;
return;
}
}
printf("\n未找到要删除的元素,请重新输入:");
scanf("%d", &a);
deleteElement(L, a);
}
C++语言实现:
#include <iostream>
#include <ctime>
#include <cstdlib>
#define MAX_SIZE 10
using namespace std;
typedef struct {
int data[MAX_SIZE];
int length;
} SqList;
void initList(SqList *L);
void displayList(SqList L);
void insertElement(SqList *L, int a, int b);
void deleteElement(SqList *L, int a);
int main() {
SqList L;
int a, b, del;
srand((unsigned) time(NULL));
initList(&L);
cout << "初始顺序表:" << endl;
displayList(L);
cout << endl << "请输入要插入的元素:";
cin >> b;
cout << "请输入要插入的位置:";
cin >> a;
insertElement(&L, a, b);
cout << endl << "插入后的顺序表:" << endl;
displayList(L);
cout << endl << "请输入要删除的元素:";
cin >> del;
deleteElement(&L, del);
cout << endl << "删除后的顺序表:" << endl;
displayList(L);
return 0;
}
void initList(SqList *L) {
int i;
for (i = 0; i < MAX_SIZE; i++) {
L->data[i] = rand() % 100;
}
L->length = MAX_SIZE;
}
void displayList(SqList L) {
int i;
for (i = 0; i < L.length; i++) {
cout << L.data[i] << " ";
}
}
void insertElement(SqList *L, int a, int b) {
int i, j;
if (L->length == MAX_SIZE) {
cout << endl << "表已满,无法插入元素!" << endl;
return;
}
for (i = 0; i < L->length; i++) {
if (L->data[i] == a) {
for (j = L->length - 1; j >= i + 1; j--) {
L->data[j + 1] = L->data[j];
}
L->data[i + 1] = b;
L->length++;
return;
}
}
L->data[L->length] = b;
L->length++;
}
void deleteElement(SqList *L, int a) {
int i, j;
for (i = 0; i < L->length; i++) {
if (L->data[i] == a) {
for (j = i; j < L->length - 1; j++) {
L->data[j] = L->data[j + 1];
}
L->length--;
return;
}
}
cout << endl << "未找到要删除的元素,请重新输入:";
cin >> a;
deleteElement(L, a);
}