Skocz do zawartości
mitas

Kopiowanie głębokie

Rekomendowane odpowiedzi

#include <assert.h>

#include <stdlib.h>

#include <stdio.h>

 

//PROGRAM MA TWORZYC DYNAMICZNIE 2 STOSY JEDEN ORYGINALNY I KOPIE DO NIEGO PRZY UZYCIU KONSTRUKTOROW

class stos

{

public:

void push (int a);

int pop();

void clear();

stos() ;

stos(stos & ;

~stos();

private:

int top;

int size;

int *dane;

};

stos::stos() //STOS ORYGINALNY

{

top=0;

size=0;

dane=NULL;

};

stos::stos(stos & rhs) //KOPIA PRZY UZYCIU KONSTRUKTORA

{

top=rhs.top;

size=rhs.size;

dane=rhs.dane;

}

stos::~stos() //USUWANIE STOSU (CHYBA)

{

};

void stos::clear() //TO TEZ

{

top=0;

};

void stos::push(int a) //DYNAMICZNA ALOKACJA PAMIECI I ZAPELNIANIE STOSU PIERWSZEGO

//(FUNKCJA ZAPELNIAJACA STOS)

{

if (top>=size)

{

int newsize=(size+1)*2;

dane=(int*)realloc(dane,newsize* sizeof (int));//TUTAJ JEST ALOKOWANIE

printf("Rozmiar stosu : %d -> %dn",size,newsize);

assert(dane);

size=newsize;

}

dane[top++]=a;//TUTAJ ZAPELNIANIE

};

int stos::pop()

{

assert(top>0);

return dane[--top];

};

int main ()

{

int i;

stos s1;

for (i=0;i<=20;i++)

s1.push(i);

printf("Zapelnianie stosu zakonczonen");

stos s2(s1);//WYWOLANIE KONSTRUKTORA KOPIUJACEGO

printf("Kopia stosu zrobionan");

printf("STOS ORYGINALNYn");

for (i=0;i<=20;i++)

printf("%d ",s1.pop());

printf("n");

printf("KOPIA STOSUn");// WYSWIETLA ZAWARTOSC KOPII (CHYBA)

for (i=0;i<=20;i++)

printf("%d ",s2.pop());// S2.POP() OZNACZA WYSWIETLANIE WLASNIE KOPII

getchar();

return 0;

}// MAM NADZIEJE ZE TO GOWNO DZIALA TAK JAK POWINNO, A NIE WYSWIETLA JAKIES BZDURY!!!!!!!!!!!!

 

 

 

program przedstawia kopiowanie płytkie stosu, mam prosbe by ktos mógł to przerobic na kopiowanie glebokie, dodał operator "=". Jezeli istnieje możliwośc dodania komentarzy to byłbym bardzo wdzieczny

Bardzo zależy mi na czasie!!!

Z góry dziękuję zqa okazaną pomoc :evil: :!: :!: :!:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zastanawia mnie jedno. coraz czesciej "poczatkujacy" uczestnicy daja tutaj coraz bardziej skomplikowane problemy. i to do zrobienia na juz.

 

powiem krotko - uczyc sie. a jak nie pasuje programowanie to uczelnie zmienic.

 

w 5 sek. wygugalelem http://www.google.pl/search?num=100&hl=pl&...eep+copying&lr=

 

a tego kodu na pare ekranow to chyba nikomu sie nie bedzie chcialo analizowac....

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ę...