私の与えられたコードにいくつかの問題があります。それに応じて動作するので、「transverse」および「transverseR」関数を実装する必要があります。
また、与えられた関数ポインタが何のためにあるのか理解するのに苦労しています:関数ポインタ=> void(* visit)(link)
void traverse (link ls, void (*visit)(link)) {
if (ls == NULL) {
return;
}
(*visit) (ls);
traverse (ls->next, visit);
return;
}
void traverseR (link ls, void (*visit)(link)) {
if (ls == NULL) {
return;
}
traverseR (ls->next, visit);
(*visit)(ls);
return;
}
void square (link l) {
// link tmp = NULL;
int container = l->item;
container = SQUARE(container);
l->item = container;
}
void squareAll (link ls){
link curr = ls;
while (curr != NULL){
square(curr);
curr = curr->next;
}
ls = curr;
}