Rekurencyjne przeszukiwanie
Ostatnio zmodyfikowano 2017-04-18 10:20
ultra Temat założony przez niniejszego użytkownika |
Rekurencyjne przeszukiwanie » 2017-04-17 15:43:51 Cześć, mam zadanko do zrobienia i potrzebowałbym pomocy.
Na wejściu dostaję kilka wyrazów, dodaję je drzewa TRIE. Następnie wprowadzam litery ka. Teraz muszę wypisać wszystkie słowa, które zaczynają się od ka. np. kajak, kalosz, kaktus itd., które są w słowniku. Podejrzewam, że bez rekurencji się tutaj nie obejdzie. Mogę liczyć na jakieś wskazówki? Jak to zrobić? |
|
kistel66 |
» 2017-04-17 17:23:22 O coś takiego chodziło? Rozwiązanie iteracyjne akurat. #include <iostream>
using namespace std;
const short ROZMIAR_TABLICY = 5;
int main() { char litery[ 2 ] = { 'k', 'a' }; string slownik[ ROZMIAR_TABLICY ] = { "kalisz", "karta", "mama", "tata", "kalkulator" }; for( int i = 0; i < ROZMIAR_TABLICY; i++ ) { for( int j = 0; j < 2; j++ ) if( slownik[ i ][ j ] == litery[ 0 ] ) if( slownik[ i ][ j + 1 ] == litery[ 1 ] ) cout << slownik[ i ] << " "; } return 0; }
|
|
ultra Temat założony przez niniejszego użytkownika |
» 2017-04-17 17:36:37 Tak, super dzięki, tylko w przypadku podania 4 liter, trzeba dopisać jeszcze 2 ify. W jaki sposób to zrobić żeby opierało to się na jednej funkcji? |
|
mateczek |
» 2017-04-17 19:58:17 a kto Ci karze ify dopisywać. Kolega Ci rzucił tylko przykład jeden z wielu??(ja wrzucę inny). I do czego chcesz rekurencję bo nie rozumiem ?? #include <iostream> #include<vector> using namespace std; int main() { string frag = "ka"; vector < string > tab { "kalisz", "karta", "mama", "tata", "kalkulator" }; for( string & wyraz: tab ) { if( wyraz.find( frag ) == 0 ) cout << wyraz << " "; } } |
|
ultra Temat założony przez niniejszego użytkownika |
» 2017-04-18 08:00:29 Ok, z Waszą pomocą udało mi się to zrobić. Dzięki! Rekurencja była mi potrzebna do ciągłego porównania. Robię porównanie po znaku i jeśli porównuje dwa znaki to mam 2 ify, jeśli 10 znaków to 10 ifów, itd. Za pomocą rekurencji nie muszę definiować tylu ifów ile chcę porównać znaków. |
|
mateczek |
» 2017-04-18 10:20:36 http://www.cplusplus.com/reference/string/string/compare/
|
|
« 1 » |