kla_sa
-
- Użytkownik
- Posty: 44
- Rejestracja: 16 sty 2010, o 01:06
- Płeć: Kobieta
- Lokalizacja: Wrocław
- Pomógł: 14 razy
kla_sa
Mała podpowiedź w pseudokodzie:
Do zrozumienia w miare proste, ale nie będzie działać dla bardzo dużych plików (bo przetrzymuję wartości w tablicy, co jest tak na prawdę zbędne). Jeżeli to dopiero początki z c++, nie ma co się przejmować.
A w tytule pojawiło się słowo drzewo. Tablica może reprezentowac jakies drzewo uporzadkowane, np. kopiec, i do sortowania możemy użyć algorytmu heapsort. To tylko przykładowe rozwiązanie.
Kod: Zaznacz cały
int AlfabetycznieNaLitere(char litera, string skad, string dokad){
string l=null; // zmienna pomocnicza
string tablica[1000] // tablica wielkosci 1000, rozmiar wg potrzeb
int n=1 // n - wynik funkcji, czyli liczba linijek w pliku dokad
otworz plik skad
while(nie czytamy konca pliku){
kolejną linijkę pliku skad wczytaj i zapisz pod l
jesli l zaczyna sie od litera to
tablica[n]=l
n=n+1
zamknij plik skad
posortuj tablica
otworz plik dokad
for(int i=1; i<n; i++)
wpisz tablica[i] jako kolejna linie w dokad
zamknij dokad
zwroc n
}
}
A w tytule pojawiło się słowo drzewo. Tablica może reprezentowac jakies drzewo uporzadkowane, np. kopiec, i do sortowania możemy użyć algorytmu heapsort. To tylko przykładowe rozwiązanie.
kla_sa
To jest zadanie w którym własnie trzeba użyc drzewa. Koles na cwiczeniach nie robił zadan z drzew, a kazał nam samemu zrobić, wiec nie mam pojecia jak to zrobic...-- 30 maja 2010, o 11:32 --jest problem od 14 do 18. z posortowaniem, i z 26
Kod: Zaznacz cały
#include <fstream>
#include <cstring>
int AlfabetycznieNaLitere (char litera, string skad, string dok)
{
string l=null; // zmienna pomocnicza
string tablica[1000] ;// tablica wielkosci 1000, rozmiar wg potrzeb
int n=1; // n - wynik funkcji, czyli liczba linijek w pliku dokad
fstream skad;
plik.open("skad.txt",ios::in |ios::out); //otworz plik skad
if(!skad)
cout<<"error";
else
while(nie czytamy konca pliku)
{
//kolejną linijkę pliku skad wczytaj i zapisz pod l
if ( )//jesli l zaczyna sie od litera to
tablica[n]=l;
n=n+1;
skad.close(); //zamknij plik skad
//posortuj tablica
fstream dok;
void open("dok.txt", ios::in |ios::out) //otworz plik dokad
for(int i=1; i<n; i++)
// wpisz tablica[i] jako kolejna linie w dokad
dok.close();//zamknij dokad
return n; //zwroc n
}
}