我的作业需要在C中实现单链接列表并编写一些函数。我的演讲方式受到约束......函数的结构和参数已经确定,所以我无法改变其中任何一个。
该函数应该在列表l中插入一个值为v的列表元素。
我会发布我先给予的内容以及之后的尝试:
struct le {
int value;
struct le *next;
};
typedef struct le listelement;
typedef listelement *list;
int insert_pos(int v, int pos, list *l);
同样,我必须按原样使用它。我对该功能的尝试如下:
int insert_pos(int v, int pos, list *l) {
if (*l == NULL) {
printf("empty");
return -1;
} else {
listelement *new;
new = malloc(sizeof(listelement));
while (pos > 0) {
l = l -> next;
pos--;
}
new -> value = v;
new -> next = *l;
*l = new;
}
}
在
l = l -> next;
导致我的编译器出现问题,因为它需要一个指针,但是将它改为* l并不会做任何事情。整件事情可能是混乱......