0

したがって、複数の 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--;
}
4

0 に答える 0