Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rekurencyjne przeszukiwanie

Ostatnio zmodyfikowano 2017-04-18 10:20
Autor Wiadomość
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ć?
P-160207
kistel66
» 2017-04-17 17:23:22
O coś takiego chodziło? Rozwiązanie iteracyjne akurat.
C/C++
#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" }; //slownik z ktorego pobieramy slowa
   
    for( int i = 0; i < ROZMIAR_TABLICY; i++ )
    {
        for( int j = 0; j < 2; j++ ) //bo sprawdzamy tylko dwie pierwsze litery
        if( slownik[ i ][ j ] == litery[ 0 ] ) //jesli pierwsza litera to k
        if( slownik[ i ][ j + 1 ] == litery[ 1 ] ) //a druga litera to a...
             cout << slownik[ i ] << " ";
       
    }
   
    return 0;
}
P-160210
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?
P-160211
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 ??
C/C++
#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 << " "; // jeśli fragment znaleziono na pozycji zerowej
       
    }
}
P-160225
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.
P-160235
mateczek
» 2017-04-18 10:20:36
http://www.cplusplus.com/reference/string/string/compare/

P-160239
« 1 »
  Strona 1 z 1