2017-02-17 2 views
-2

Итак, я пытаюсь создать функцию, которая связывает список и целое число x в качестве параметров, и ищет список для этого x и когда он его находит, делает узел, который содержит это глава списка и возвращает место, где он нашел х, это то, что я создал до сих пор, но результаты он дает неправильныСделать случайный узел, первый узел

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; 
} 
} 

Любые рекомендации будут оценены

+0

'int searchMF (list & l, int x)' является синтаксической ошибкой в ​​C. Что такое 'FOR (i, 1 TO size (l))'? Предполагается, что он будет похож на Бейсик? –

+0

thats на самом деле не проблема, потому что я кодирую на языке, подобном c, что это не проблема, я ищу другую проблему, отличную от синтаксиса (моя программа обычно компилируется), поэтому for for different – Maverick98

+1

@Maverick проще, если ваш источник был полной программой на C (как помечен), чтобы воспроизвести ее поведение. Вы можете перевести его обратно на свой «похожий язык», как только вы получили решение – Scheff

ответ

1

После curr->next=l.front; вам нужно обновите l.front, чтобы указать на curr.

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

Также чистый C код был бы более полезным при отладке проблемы.

+1

это действительно сработало! спасибо большое помощник: D – Maverick98

+0

ой нормально не знал .. – Maverick98

Смежные вопросы