顺序表的插入删除及应用(C语言版的)

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:04:19
是关于数据结构的,那位编程高手帮帮忙,鄙人是个初级入门,什么都不太懂,希望某位大侠指点下,把整个程序代码告知鄙人,鄙人将感激不尽,谢谢大家了!!!!!!!急需。

我这有两种方法,一种是按位置插入,另一种是按值。
(1)、
void insert1(elem *p,int i,int x)//在第i个位置插入x值
{int j;//j 是记录a[M]的一个下标
if((i<=0||i>p->len)||(p->len>=M))
printf("You Don't insert X in The Locate %d !!!!!!!!\n\n",i);//判断i的值是否合法
else //合法后在i插入x
{for (j=p->len;j>i-1;j--)
p->a[j]=p->a[j-1]; //使第i个位置后面的数依次后移
p->a[i-1]=x;//在第i个位置插入x
p->len++;//长度加1
}
}
(2)、
void insert2(elem *p,int x,int y)//在值x的位置插入y值
{int k=locate(p,x);//调用locate()函数(查找x的位置)
if(k==-1)//返回值为-1时,说明没有x值
printf("The list haven't number X ;%d !\n",x);
else//否则调用insert1(),在位置k插入y值
insert1(p, k, y);
}
int locate(elem *p,int x)//这是查找定位x的值
{int i;
for(i=0;i<p->len;i++)
if(p->a[i]==x)
break;
if(i==p->len)
return(-1);//没有x值
else
return(i+1);//x值位于第i+1位置
}
下面的是删除,也有两种方法。一是按