题目描述
建立长度为n的顺序表,在指定的数据元素item之前插入数据元素data。如果指定的数据元素item不存在,则将data插入到顺序表的尾端。(数据类型为整型)
输入
第一行为顺序表的长度n; 第二行为顺序表中的数据元素; 第三行为指定的数据元素item; 第四行为要插入的数据元素data;
输出
输出结果为顺序表中的数据元素。
样例输入复制
10 10 20 30 40 50 60 70 80 90 100 50 55
C语言数组实现:思路就是:循环遍历找到item这个数字在数组中对应的下标。用tmp存起来。(当然我开始wa了,要注意还有就是当这个item不存在的时候,插入到末尾)如果找到了,就用flag标记为1.然后在输出的时候判断一下flag的情况。就循环输出就行,具体代码如下:
#include<iostream>
#include<stdlib.h>
using namespace std;
int main() {
int n,tmp=0,flag=0;
cin >> n;
int a[1005] = { 0 };
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int item, data;
cin >> item >> data;
for (int i = 0; i < n; i++) {
if (a[i] == item) {
tmp = i;
flag = 1;
}
}
if (flag == 1) {
for (int i = 0; i <tmp; i++) {
cout << a[i] << " ";
}
cout << data << " ";
for (int i = tmp; i < n; i++) {
cout << a[i] << " ";
}
}
else if (flag == 0) {
for (int i = 0; i <n; i++) {
cout << a[i] << " ";
}
cout << data << " ";
}
return 0;
}
数据结构写法: