Skocz do zawartości
Smash

[c]przeszukiwanie Listy I Zwrot Kilu Wskaznikow

Rekomendowane odpowiedzi

Witam!

Napisałe f-cje która przeszukuje liste 2-kierunkowa pod katem nazwiska

Gdy znajdzie zwraca wskaznik do rekordu

 

data *find_nazwisko(struct data* wsk, struct data *pocz, char *szukaj){	  wsk=pocz;	  do	  {		 if(strcmp(wsk->nazwisko,szukaj)==0)			return wsk;		 else		 wsk=wsk->nastepny;	  }while(wsk!=NULL);}

Pytania brzmią

1. W jaki sposob zrobić tak aby w momencie gdy na liscie beda dwa takie same nazwiska f-cja zwrociła oba wskazniki ? Po napotkaniu pierwszego jak na razie nastepuje wyjscie z fcji.

2. Założmy ze chcemy wyswietlic wszystkie nazwiska na K lub zaczynajace sie na 'Ka' jak to zrobić ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

nie uzywac return tylko:

a) wypisywac w na bierzaco w tej funkcji

B) zrobic liste pomocnicza w ktorej umieszczac wskazniki na pasujace elementy i zwracac ja po przeleceniu (lol) wszystkich elementow listy ( za pomoca return )

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ja bym zrobił ( i tak robiłem w ostatnim projekcie) zwracal vector wskaźników np... jeśli wies co to wektor i .JEŚLI możesz go używać... bo raczej na początkowych stadiach edukacji nie uczą co to vector...

 

to jest po prostu tak jakby tablica, do której wrzucasz sobie np kazde nowo znalezione nawisko (jego wskaźnik) i ta tablica pamieta ile jest jej elementów, i mozes z potem spokojnie sobie przejrzeć całą tablicę i wyświetlić wszystkie nazwiska...

 

dokładniej ta tablica jest klasą.. jeśli nie wiesz co to klasa, a zapewne nie wiesz, to moze jednak daruj sobie to rozwiazanie.

 

Innym rozwiazaniem jest: mozesz też przekazac jako parametr, wskaźnik na tablicę wskaźników na nazwisko np, oraz wskaźnik lub referencję na liczbę uzyskanych odpowiedzi... Wtedy po wyjsciu w zmiennej liczba bedziesz miał ilość takich samych nazwisk (o ile sobie to ustawisz w funkcji find_nazwisko - przyjęło się oznaczać funkcje bez znaku _, ja bym to nazwał raczej FindBySurname() - czytelne i wygodne.. :) ), oraz bedziesz miał tablicę w której kolejno umieszczonę bedą wskaniki do znalezionych elementów...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zwroc wskaznik na tablice wskaznikow. Ot po klopocie. A jesli to moze byc c++, to zwroc vector wskaznikow - najprosciej i najmniej awaryjnie. Jesli nie wiesz co to vector to zapytaj googla o std::vector , pierwszy czy drugi link jest odpowiedni, aby przyblizyc Ci tajniki tej struORT: ORT: ORT: ktury.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...