2017-02-17 3 views
-2

Also, ich versuche, eine Funktion zu erstellen, die eine verknüpfte Liste und eine ganze Zahl x als Parameter und sucht die Liste für das x und wenn es es findet, macht den Knoten, der enthält es Kopf der Liste und den Ort zurück, wo es x gefunden wird, ist es das, was ich bisher erstellt haben, aber die Ergebnisse es sindMachen Sie einen zufälligen Knoten, der erste Knoten

int searchMF(list &l,int x){ 
node *curr,*temp; 
curr=l.front; 
temp=curr; 
int i,place=0; 
if (l.front->info == x) return 1; 
else{ 
FOR (i,1 TO size(l)) { 
    if (curr->info == x) { 
     temp->next=curr->next; 
     curr->next=l.front; 
     place=i; 
     break; 
    } 
    temp=curr; 
    curr=curr->next; 
} 
return place; 
} 
} 

Alle Empfehlungen geschätzt

werden falsch gibt
+0

'int searchMF (Liste & l, int x)' ist ein Syntaxfehler in C. Was ist 'FOR (i, 1 TO size (l))'? Soll es wie BASIC sein? –

+0

Das ist eigentlich kein Problem, weil ich in einer Sprache ähnlich wie c, dass dies kein Problem ist, ich suche ein anderes Problem als Syntax (mein Programm kompiliert normalerweise), warum das ist anders – Maverick98

+1

@Maverick wäre es einfacher, wenn Ihre Quelle ein vollständiges C-Programm (wie markiert) ist, um ihr Verhalten zu reproduzieren. Sie können es zurück in Ihre "ähnliche Sprache" übersetzen, sobald Sie eine Lösung haben – Scheff

Antwort

1

nach curr->next=l.front; würden Sie brauchen, um Aktualisieren Sie die l.front, um auf curr zu zeigen.

curr->next=l.front; 
l.front = curr; 

Auch reine C Code würde in das Debuggen des Problems hilfsbereiter sein können.

+1

es hat tatsächlich funktioniert !! Vielen Dank Kumpel: D – Maverick98

+0

oh ok wusste nicht .. – Maverick98

Verwandte Themen