顺序表的插入

来源:互联网 发布:现货白银看盘软件 编辑:程序博客网 时间:2024/05/23 20:06
顺序表的数组是足够大,当插入一个数据,我们可以把插入位置的数据和后面的数据都逐一后移,把要想插入的数据插入所想要插入的位置,当插入完数据后,要返回顺序表增加1后的长度。
#include <stdio.h>#define N 50  int a[N]={0};void CreateArr(int *a, int len)  //创建顺序表{printf("请输入%d个整型数据:\n",len); for(int i=0; i<len; i++)scanf("%d",&a[i]);printf("数据输入完毕.\n");}void PrintArr(int *a, int len)   //输出顺序表{printf("输出数据.\n");for(int j=0; j<len; j++)printf("%-3d",a[j]);printf("\n");}int InsertElement(int *a, int len, int data, int pos)  //插入数据{if(pos<1 || pos>len+1)  {printf("你插入的位置不合法.\n");return len;}else{for(int i=len-1; i>=pos-1; i--)//被插入的位置的所有数据后移{a[i+1] = a[i];  }a[pos-1] = data;  //插入数据return (len+1);  //插入数据后顺序表长度增加1}}void main(){int n;int data, pos;printf("请问你想输入几个整型数据.\n");scanf("%d",&n);CreateArr(a,n);PrintArr(a,n);printf("请输入你要插入的数据.\n");scanf("%d",&data);printf("请输入你要插入的位置.\n");scanf("%d",&pos);n=InsertElement(a,n,data,pos);PrintArr(a,n);}

原创粉丝点击