所以我使用多个C文件和头文件创建一个可执行文件,我只需要创建不同链表操作的函数。我正在尝试使用通用数据,有一个C测试文件,可以测试我的功能。我现在不太相信它的正确性,所以我想知道,这里有三个功能,我要问看看这些是否有任何错误,我认为可能会有。 任何形式的见解都会有所帮助。我正在尝试创建一个工作的测试人员C文件,但到目前为止,我的项目的这一部分更重要。
打印出序列中的值
#ifdef GENERIC
void seq_print(Seq seq, void (*print_func)(void *)){
if(seq->top == NULL){
printf("%s %c", "There is no data to print.", '\n');
return;
}
Node * p = seq->top;
while(p != NULL){
print_func(p->data);
p = p->next;
}
}
#else
void seq_print(Seq seq){}
#endif
添加到序列的前面
void seq_add_front(Seq seq, ETYPE val){
printf("%s", "Running add_front \n");
if(seq->top != NULL){
Node * temp = seq->top;
Node * newTop = malloc(sizeof(Node));
newTop->data = val;
newTop->next = seq->top;
seq->top = newTop;
}else{
seq->top = malloc(sizeof(Node));
seq->top->data = val;
}
seq->size++;
}
删除序列前面
ETYPE seq_del_front(Seq seq){
if(seq->top != NULL){
ETYPE ret = seq->top->data;
Node * prevTop = seq->top;
seq->top = seq->top->next;
free(prevTop);
return ret;
}
return;
seq->size--;
}