Nazwa forum

315 - Zesraj się a nie daj się :) !!!


#1 2011-03-15 22:05:34

Pan Japa

Nowy użytkownik

Zarejestrowany: 2011-03-15
Posty: 3
Punktów :   

Zadania ASD :(

Proponuje otworzyć wątek niebanalnych zadań ASD.

Macie jakieś rozwiązania? :)

Ja właśnie zabieram się za robotę. Spróbuję okiełznać ten zadany problem.

Życzę sobie powodzenia.

Natrafiłem w Googlach na taki przydatny kawałek kodu. Zabieram się za szlifowanie:)

#include <cstdlib>
#include <iostream>
#include <conio.h>

using namespace std;

struct drzewo
{
drzewo *lewy;
drzewo *prawy;
int wartosc;
};

void tworzdrzewo(drzewo *&);
void wpisz(int &);
void pre_po(drzewo *&);
void post_po(drzewo *&);
void in_po(drzewo *&);
bool pustedrzewo(drzewo *&);

int main(int argc, char *argv[])
{
drzewo *wsk = NULL;
tworzdrzewo(wsk);

cout << "

Pre_Order
";
pre_po(wsk);
cout << "

Post_Order
";
post_po(wsk);
cout << "

In_Order
";
in_po(wsk);

getch();
system("PAUSE");
return EXIT_SUCCESS;
}

void tworzdrzewo(drzewo *&t)
{
int x;
char ch;

t = new drzewo;

cout << "

KORZEN DRZEWA

";
wpisz(x);
t -> wartosc = x;
t -> lewy = NULL;
t -> prawy = NULL;

cout << "
Adres: " << t << "
";
getch();

cout << "
Utworzyc lewe poddrzewo drzewa o korzeniu " << t -> wartosc << " T/N ?";
ch = getch();
if(ch == 'T' // ch == 't') tworzdrzewo(t -> lewy);

cout << "
Utworzyc prawe poddrzewo drzewa o korzeniu " << t -> wartosc << " T/N ?";
ch = getch();
if(ch == 'T' // ch == 't') tworzdrzewo(t -> prawy);

}

void wpisz(int &data)
{
cout << "Podaj wartosc: ";
cin >> data;
}

void pre_po(drzewo *&t)
{
if(!pustedrzewo(t))
{
cout << "
Wartosc " << t -> wartosc << " pod adresem " << t << "
";
cout << "wskazuje na
";
cout << "lewy " << t -> lewy << " ";
cout << "prawy " << t -> prawy << "
";
pre_po(t -> lewy);
pre_po(t -> prawy);
};
}
void post_po(drzewo *&t)
{
if(!pustedrzewo(t))
{
post_po(t -> lewy);
post_po(t -> prawy);
cout << "
Wartosc " << t -> wartosc << " pod adresem " << t << "
";
cout << "wskazuje na
";
cout << "lewy " << t -> lewy << " ";
cout << "prawy " << t -> prawy << "
"; };
}
void in_po(drzewo *&t)
{
if(!pustedrzewo(t))
{
in_po(t -> lewy);
cout << "
Wartosc " << t -> wartosc << " pod adresem " << t << "
";
cout << "wskazuje na
";
cout << "lewy " << t -> lewy << " ";
cout << "prawy " << t -> prawy << "
";
in_po(t -> prawy);
};
}

bool pustedrzewo(drzewo *&t)
{
if(t == NULL) return(true);
else return(false);
}

Ostatnio edytowany przez Pan Japa (2011-03-15 22:37:54)

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.bzclan.pun.pl www.jandbtranss.pun.pl www.world-of-naruto.pun.pl www.opl.pun.pl www.niklan.pun.pl