|
TwojePC.pl © 2001 - 2025
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
Kto zna dobrze C++? , k_luke 10/09/05 19:08 Witam,
szukam kogos, kto zna dobrze programowanie w C++... chodzi o programowanie obiektowe. Jesli jest takowa osoba i dysponuje dzis czasem - to prosilby o odplatna pomoc w napisaniu 3-4 malych programow... jesli bedzie ktos chetny to przesle tresc zadan na maila...- .... , Hawaj 10/09/05 19:19
napisz na bordzie terść zadań, to więcej ludzi pomyśli nad nimi - nie pierdziel , recydywista 10/09/05 19:46
o kasie tylko wal zadania tutaj :)Computers are useless. They can only
give you
answers. - jedno z zadan... , k_luke 10/09/05 19:48
/*
Opracuj szablon klasy reprezentujacej liste jednokierunkowa, z jednym
parametrem oznaczajacym typ danych przechowywanych w wezlach listy.
Szablon ma zawierac:
- Definicje wlasnego, prywatnego wezla;
- Konstruktor inicjujacy liste pusta;
- Konstruktor inicjujacy liste z jednym wezlem danych;
- Destruktor;
- Operator << przeznaczony do konkatenacji list w postaci
Lista &operator << (Lista &);
- Funkcje skladowa print, przeznaczona do drukowania listy.
Opracowana klasa ma umozliwic wykonanie nastepujacego programu:
int main()
{
Lista<double> L, A(1.75), B(-2.45), C(12.4);
L << A << B << C << A;
L.print("liczby typu double");
return 0;
}
*/- hey na kiedy to masz?? , biEski 10/09/05 21:32
wyslij zadania na maila z profilu to se popatrze co do zadania to w miare proste :> pozdrawiam - hmm , Birdman 10/09/05 21:51
#include <iostream>
using namespace std;
class lista
{
public:
struct node
{
node * next;
double obj;
node(): next(NULL) {};
~node()
{
while(next)
{ node * wsk_next = next->next; // 1
next->next = NULL; // 2
delete (next); // 3
next = wsk_next; // 4
}
}
};
private:
node * first;
public:
lista() : first(NULL) {}
~lista() {}
lista(const lista & wzor)
{
node * spointer;
node * pointer;
pointer = first = NULL;
spointer = wzor.first;
while(spointer)
{
node * temp = new node; //ta instukcja moze wyrzucic wyjatek std::bad_alloc()
temp -> obj = spointer ->obj;
if(first == NULL)
{
first = temp;
pointer = temp;
} else
{
pointer ->next = temp;
pointer = temp;
}
spointer = spointer -> next;
}
}
lista & operator= (const lista& wzor)
{
delete (first);
node * spointer;
node * pointer;
pointer = first = NULL;
spointer = wzor.first;
while(spointer)
{
node * temp = new node; //ta instukcja moze wyrzucic wyjatek std::bad_alloc()
temp -> obj = spointer ->obj;
if(first == NULL)
{
first = temp;
pointer = temp;
} else
{
pointer ->next = temp;
pointer = temp;
}
spointer = spointer -> next;
}
return *this;
}
bool findelem(double value , node ** prev , node ** curr)
{
*prev = NULL;
*curr = first;
while( *curr != NULL)
{
if( (*curr) -> obj == value) return true;
*prev = *curr;
*curr = (*curr) ->next;
}
return false;
}
void insert(double wstawka)
{
node * prev;
node * curr;
if(!findelem(wstawka , &prev , &curr))
{
node * temp = new node;
temp -> next = first;
first = temp;
temp -> obj = wstawka;
}
}
bool erase(double wartosc)
{
node * prev;
node * curr;
bool jest = findelem(wartosc,&prev , &curr);
if(jest)
{
node * temp;
temp = curr -> next;
curr -> next = NULL;
delete curr;
if (prev)
prev ->next = temp;
else
first = temp;
}
return jest;
}
void dump()
{
node * pokazywacz = first;
while(pokazywacz)
{
cout << pokazywacz ->obj << endl;
pokazywacz = pokazywacz ->next;
}
}
}; /**** koniec definicji klasy lista jednokierunkowa ****/
int main()
{
lista ld;
ld.insert(1.001);
ld.insert(2.002);
ld.insert(3.003);
ld.insert(4.004);
ld.insert(5.005);
lista ld2 = ld;
ld.erase(3.003);
ld.erase(2.002);
ld.erase(1.001);
ld.dump();
ld2.dump();
ld = ld2;
ld.dump();
return 0;
}ping? - mialem , Birdman 10/09/05 21:53
takie cos; pewnie sie przyda ;)ping? - Ta, trzeba tylko dorobić template'y... , pachura 10/09/05 22:57
...bo zlecający zadanie chciał przecież deklarować taką listę przez Lista<double> (a zatem - w domyśle - mieć również możliwość zadeklarowania Lista<int> czy Lista<std::vector<int> >).- znasz dobrze... , k_luke 10/09/05 23:07
to? nie chcialbys zrobic? i zarobic:) Pilne!
- poszlo... , k_luke 10/09/05 21:46
na maila... |
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
 |
|
|
|