今日,做数据结构。总结自己的经验,在此开帖。
总结,C语言内不能使用<函数名>.的形式,指针需要用->,且函数声明的形参内必须用*,使用函数的时候应该用&。
以下代码是做线性表删除x元素操作的。
#include <stdio.h>
#include <stdlib.h>
#define InitSize 10
typedef int ElemType;
typedef struct{
ElemType *data;
int length;
}SList;
void InitList(SList *L){
L->data=(ElemType*)malloc(sizeof(ElemType)*InitSize);
L->length=0;
return ;
}
void delete_x(SList *L,ElemType e){
int k=0;
int i=0;
for(i=0;i<L->length;i++){
if(L->data[i]!=e){
L->data[k]=L->data[i];
k++;
}
}
L->length=k;
return ;
}
void printlist(SList *L){
int i=0;
for(i=0;i<L->length;i++){
printf("%d ",L->data[i]);
}
printf("\n");
return ;
}
int main(){
SList L;
InitList(&L);
int a[10];
int f=0;
scanf("%d",&f);
int j=0;
int cnt;
while(f!=0){
a[j]=f;
j++;
cnt++;
scanf("%d",&f);
}
getchar();
for(j=0;j<cnt;j++){
L.data[j]=a[j];
L.length++;
}
printlist(&L);
int x=0;
scanf("%d",&x);
delete_x(&L,x);
printlist(&L);
}