删除顺序表中的第i个元素,,给个完整的 C语言代码吧~~~ 谢谢

如题所述

#include <stdio.h>

#define MAXSIZE 100

typedef struct{

int elem[MAXSIZE];    

int last;

} SeqList;

void deletelist(SeqList *l,int i,int k);

int main(){    

int i,k,j=0;

SeqList *l;

SeqList a;

l=&a;    

scanf("%d%d",&i,&k);//输入i和k

while(scanf("%d",&l->elem[j])!=EOF)

j++;//输入顺序表内容

l->last=j-1;

deletelist(l,i,k);    

return 0;

}    

扩展资料

顺序表插入元素

向已有顺序表中插入数据元素,根据插入位置的不同,可分为以下 3 种情况:

1、插入到顺序表的表头

2、在表的中间位置插入元素;

3、尾随顺序表中已有元素,作为顺序表中的最后一个元素;将要插入位置元素以及后续的元素整体向后移动一个位置;将元素放到腾出来的位置上。

注意,动态数组额外申请更多物理空间使用的是 realloc 函数。并且,在实现后续元素整体后移的过程,目标位置其实是有数据的,还是 3,只是下一步新插入元素时会把旧元素直接覆盖。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-17

删除顺序表中的第i个元素代码如下:

Bool DeleteList(sqlist&l,int pos, int&e)

如果(pos<1|| pos>L.length)返回false;

E=L。base[pos-1];

For (int I = pos. I < L)l蒜皮的;我+ +)

l[I-1=L]base[我];

ll蒜皮-;

返回true;

扩展资料:

C语言对数组元素大小排序:

下面使用冒泡排序将实线数组从小到大排序。

思想:每次比较两个相邻的数字,如果按升序排列,大的数字会放在后面,经过一个循环,最大的数字会放在最后。

10、2、3、4、5、6、987,1是排序序列的输入,第一批订单后,将是最大的,10最后,第二个订单,剩下的2,3,4,5,6,9、8、7、1到泡沫,将是最大的电流9在倒数第二的位置,等等。

本回答被网友采纳
第2个回答  推荐于2017-10-14
//删除pos位置元素

bool DeleteList(SqList& L,int pos,int& e)
{
if(pos<1||pos>L.length) return false;
e=L.base[pos-1];
for(int i=pos;i<L.length;i++)
{
L.base[i-1]=L.base[i];
}

L.length--;
return true;
}追问

有用简单数组写的,输入哪个数就删除哪个的那种代码么?? 用C++执行的

追答

只要做简单的替换即可,线性表替换成数组,如下:
template
bool Delete(ElemType* L,int length,int pos,ElemType& e)
{
if(poslength) return false;//参数合法性检查
e=L[pos-1];//保留删除元素
for(int i=pos;i<length;i++)//这步最关键,删除元素后,要前移后续元素
{
L[i-1]=L[i];//前移
}
return true;
}

追问

这个不能直接在VC++中直接运行的吧!!!还要加什么的??

追答

主函数中直接调用即可。各参数说明如下:
bool Delete(ElemType* L,int length,int pos,ElemType& e)//L是数组名,length是数组中实际的元素个数而不是数组的长度啊,e是保存被你删除的元素

本回答被网友采纳
第3个回答  2012-09-14
#include <stdio.h>
#define MAXLENGTH 100
int del(char arr[],int i)
{
int j=0;
while(arr[j]!='\0') j++;
int max=j;
if(i>=j) return -1;//判断超出表的最大长度没
for(j=i;j<max;j++)
arr[j]=arr[j+1];
return 0;
}
int main(int argc, char* argv[])
{
char ar[]="0123456789";//假如这是个表
del(ar,3);//删除顺序表ar中的第四个元素
printf("%s\n",ar);
return 0;
}追问

这个都固定删哪个了,,有用简单数组写的,输入哪个数就删除哪个的那种代码么??

追答

我写的是思路

相似回答