前面講過,table delTable(table t,int add){
if (add>t.length || add<1) {
printf("被删除元素的位置有誤");
exit(0);
}
//删除操作
for (int i=add; i
t.head[i-1]=t.head[i];
}
t.length--;
return t;
}
完整程式如下(可根據實際需要适當更改代碼):
#include
#include
#define Size 4
typedef struct Table{
int * head;
int length;
int size;
}table;
table initTable(){
table t;
t.head=(int*)malloc(Size*sizeof(int));
if (!t.head)
{
printf("初始化失敗");
exit(0);
}
t.length=0;
t.size=Size;
return t;
}
table delTable(table t,int add){
if (add>t.length || add<1) {
printf("被删除元素的位置有誤");
exit(0);
}
for (int i=add; i
t.head[i-1]=t.head[i];
}
t.length--;
return t;
}
void displayTable(table t){
for (int i=0;i
printf("%d",t.head[i]);
}
printf("\n");
}
int main(){
table t1=initTable();
for (int i=1; i<=Size; i++) {
t1.head[i-1]=i;
t1.length++;
}
printf("原順序表:\n");
displayTable(t1);
printf("删除元素1:\n");
t1=delTable(t1, 1);
displayTable(t1);
return 0;
}
輸出結果:
原順序表:
1234
删除元素1:
234