SWUST OJ 943: 顺序表插入操作的实现

时间:2024-03-01 15:28:43

题目描述

建立长度为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<stdio.h>
#include<stdlib.h>
typedef struct splist
{
	int length;
	int date[100];
}Splist;
void Creat(Splist *&L, int n)
{
	L=(Splist *)malloc(sizeof(Splist));
	for(int i=0; i<n; i++)
	{
		scanf("%d", &L->date[i]);
	}
	L->length=n+1;
}
void Add(Splist *L, int N, int item)
{
	int temp=-1;
	for(int i=0; i<L->length; i++)
		if(N==L->date[i])
			temp=i;
	if(temp!=-1)
	{
		for(int i=L->length-1; i>=temp; i--)
		{
			L->date[i]=L->date[i-1];
		}
		L->date[temp]=item;
	}
	else
		L->date[L->length-1]=item;
	
}
int Printf(Splist *L)
{
	for(int i=0; i<L->length; i++)
	{
		printf("%d", L->date[i]);
		if(i==L->length-1)	break;
		printf(" ");
	}
}
int main()
{
	int n, N, item;
	scanf("%d", &n);
	Splist *H;
	Creat(H, n);
	scanf("%d%d", &N, &item);
	Add(H, N, item);
	Printf(H);
	printf("\n");
	return 0;
}

注意

该程序仅供学习参考!