第二十六课 实现线性表基本操作的函数
项目一【有序数组中插入数据(函数版)】
有一个足够“大”的数组a,其中已经存储了n个呈升序排列的数据。调用函数insert(a, n, m),可以将数m插入到a中的合适位置,使其仍然保持升序,并且返回值为数组中有效数字的个数(即原先的n加1)。
例如,若a中数据为1 7 8 17 23 24 59 62 101,n=9,需要插入的数字m为50,调用函数insert(a, n, m)后,a中数据为1 7 8 17 23 24 50 59 62 101,n=10。
下面给出了调用函数insert的main函数,请写出insert函数来,实现上述功能。
#include<stdio.h>
#define N 10
int main()
{
int a[10]={11,22,33,44,55,66,77,88,99};
int i,j,num,t;
for(i=0;i<N-1;i++)
printf("%d ",a[i]);
printf("\n输入数字:");
scanf("%d",&num);
a[9]=num;
for(j=0;j<N-1;j++)
for(i=0;i<N-j-1;i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
运行结果:
项目二【删除数组元素】
del函数的作用是删除数组a中的指定元素x,n为数组a的元素个数。函数的返回值,为删除元素后的有效元素个数(数组中可能有重复元素)。函数的原型为:
int del (int a[10],int n,int x)
(1)请实现这个函数,并完成测试。
(2)如果在函数调用时,要求数组中的元素呈升序排列呢?
int del (int a[10],int n,int x)
(1)请实现这个函数,并完成测试。
(2)如果在函数调用时,要求数组中的元素呈升序排列呢?