一、说明
线性表系统删除部分的代码是用C++语言写的(这是数据结构教材的典型案例),流程图使用visio绘制的 ,这两个内容是相互关联的。其中的数值可以更改。
以下代码均为举例,如有需要可以自己改写。原则上代码都是正确的,但也有可能部分地方存在逻辑错误,请谅解!
二、代码段
int DelElem(SeqList *L,int i,DataType *x)
{
int j;
if (L->Length==0)
{ printf("顺序表为空!");
return 0; /*表空,不能删除*/
}
if(i<1 || i>L->Length) /*检查是否空表,及删除位置的合法性*/
{ printf("不存在第i个元素!");
return 0;
}
*x=L->data[i-1]; /*用指针变量返回删除元素的元素值*/
for(j=i;j<L->Length;j++) /*节点移动*/
L->data[j-1]=L->data[j];
L->Length--; /*顺序表长度减一*/
return 1; /*删除成功,返回*/
}
三、实现结果(流程)
复制必看:这个流程图是我自己理解画的,不是标准的正确答案,借鉴要谨慎!!!
1.流程图