顺序表的基本操作
1.插入元素
2.删除元素
3.查找元素
4.更改元素
插入操作
插入操作根据插入的位置不同分三种情况:
1.插入表头。
2.插入表的的中间位置。
3.插入表的尾部作为表的最后一个元素。
虽然插入顺序表的位置可能不同,但是都可以根据一个方法解决:
1.找到元素要插入的位置,将该位置的元素以及后续元素遍历往后移动一个位置。
2.把元素放进腾出的空间。
C语言代码实现如下:
table insertTable(table t,int add,int elem){
int i;
if(add<1||add>t.length+1){
printf("插入位置不合理");
return t;
}
if(t.length==t.size){
t.head=(int*)realloc(t.head,(t.size+1)*sizeof(int));
if(!t.head){
printf("内存分配失败");
return t;
}
t.size+=1;
}
for(i=t.length-1;i>=add-1;i--){
t.head[i+1]=t.head[i];
}
t.head[add-1]=elem;
t.length++;
return t;
}
运行结果:
删除操作
删除操作根据删除的方式不同可以分为两种情况:
1.根据位置删除。
2.根据值删除。
虽然删除顺序表的元素方式可能不同,但是都可以根据一个方法解决:
1.找到目标元素。
2.并将其后续所有元素整体前移 1 个位置。
(位删除)C语言代码实现如下:
//根据位置删除
table deletePosition(table t,int del){
int i;
if(del<1||del>t.length+1){
printf("删除位置不合理");
}
for(i=del-1;i<=t.length-1;i++){
t.head[i]=t.head[i+1];
}
t.length--;
return t;
}
运行结果如下:
(值删除)C语言代码实现如下:
//根据值删除
table deleteValue(table t,int value){
int i;
int j;
int temp;
for(i=0;i<=t.length-1;i++){
if(value==t.head[i]){
temp=i;
for(j=temp-1;i<=t.length-1;i++){