给大家推荐一个公众号:诗葵1931
里面的诗歌很美
数据结构-线性表插入操作-源码
算法思想:
(1)判断插入位置i 是否合法。
(2)判断顺序表的存储空间是否已满。
(3)将第n(length-1)至第i(i-1) 位的元素依次向后移动一个位置,空出第i个位置。
(4)将要插入的新元素x放入第i个位置。
(5)表长加1,插入成功。
#include<stdio.h>
#include<stdlib.h>
struct charu{
int*elem;
int length;
int listsize;
};//定义结构
void ss(charu& l,int n)
{
int hh;
l.elem=(int*)malloc(sizeof(int)*n);//申请存储空间
for(int k=0;k<n;k++)
{
scanf("%d",&hh);
l.elem[k]=hh;
}
l.length =n;
}
void xianshi(charu l)//录入表中元素
{
for(int i=0;i<l.length ;i++)
{
printf(" %d ",l.elem[i]);
}
}
int insert(charu &l,int a,int hu)
{
int f=l.length;
for(int i=0;i<f;i++)
{
if(l.elem[i]==a)
{
l.elem=(int*)realloc(l.elem,(l.length+1)*sizeof(int));
for(int j=l.length ;j>i;j--)
{
l.elem[j]=l.elem[j-1];//元素后移
}
l.length++; //表长加一
l.elem[i]=hu;
return 1;
}
}
return 0;
}
main()
{
int n;
printf("请输入表长");
scanf("%d",&n);
charu l;
printf("\n开始输入表中元素\n");
ss(l,n);
printf("请分别输入在几号元素前插入的元素值");
int a,hu;
scanf("%d",&a);
scanf("%d",&hu);
int bh=insert(l,a,hu);
if(bh==0)
{
printf("无特定元素");
}
else{
printf("比较次数为:%d\n",bh);
}
xianshi(l);
printf("\n元素个数:%d",l.length );
return 0;
}
快看,这才是重点!我想能看到这里的同学,无外乎两种人:来拷贝代码的人 和 来拷贝代码的人。
但,在拷贝走的时候,你要想清楚一件事,把代码拷走之后有个蛋用,搞明白对你来说才是最重要的。
好了,就酱紫。
老铁,这要是都不赞,说不过去吧!!!哦,对了,你这么好看,关注一下呗。。。
最后对自己说:
你现在所遭遇的每一个不幸,都来自一个不肯努力的曾经。