したがって、複数の C ファイルとヘッダー ファイルを使用して実行可能ファイルを作成し、さまざまな連結リスト操作の関数を作成するだけです。私は一般的なデータでそれをやろうとしています.私の機能をテストすると思われるCテストファイルがあります. 私は今、その正確性を本当に信頼していないので、疑問に思っています.3つの関数があります.おそらく間違いがあると思います. どんな種類の洞察も役に立ちます。動作するテスター 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--;
}