對我的代碼有一些問題。你相應地工作,我需要實現「橫向」功能。C編程,函數指針
此外,我無法理解有什麼特定的函數指針是: 函數指針=>無效(*訪問)(鏈接)
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;
}
請告訴我你的問題與'traverse'和'traverseR'功能?他們看起來很好。至於理解什麼,例如'void(* visit)(link)'的意思,參見[this link](http://c-faq.com/decl/spiral.anderson.html)。 – 2012-08-10 08:52:27
如果列表很長(或循環),那麼它們就會吹出堆棧。 – Porculus 2012-08-10 09:12:13