题目描述
建立长度为n的顺序表,在指定的数据元素item之前插入数据元素data。如果指定的数据元素item不存在,则将data插入到顺序表的尾端。(数据类型为整型)
输入
第一行为顺序表的长度n; 第二行为顺序表中的数据元素; 第三行为指定的数据元素item; 第四行为要插入的数据元素data;输出
输出结果为顺序表中的数据元素。样例输入
10 10 20 30 40 50 60 70 80 90 100 50 55样例输出
10 20 30 40 55 50 60 70 80 90 100#include<iostream> #include<malloc.h> #include<cstring> using namespace std; #define INF 0x3f3f3f3f #define MAX(x,y) (x>y?x:y) #define MIN(x,y) (x>y?y:x) #define M 1000 typedef struct { int data[M]; int length; }sqlist; void Initsqlist(sqlist*&L) { L = (sqlist*)malloc(sizeof(sqlist)); L->length=0; } void createsqlist(sqlist*&L) { int n; cin>>n; for(int i=0;i<n;i++) { cin>>L->data[i]; } L->length=n; } void insertsqlist(sqlist*&L,int num1,int num2) { int i,j; int flag=1; for(i=0;i<L->length;i++) { if(L->data[i]==num1) { flag=0; for(j=L->length-1;j>=i;j--) { L->data[j+1]=L->data[j]; } L->data[j+1]=num2; break; } } L->length++; if(flag==1) { L->data[L->length-1]=num2; } } void display(sqlist*L) { for(int i=0;i<L->length;i++) { cout<<L->data[i]<<" "; } } int main() { sqlist*L; Initsqlist(L); createsqlist(L); int num1,num2; cin>>num1>>num2; insertsqlist(L,num1,num2); display(L); return 0; }
SWUST OJ943: 顺序表插入操作的实现
最新推荐文章于 2024-04-02 23:25:45 发布