pleasehelpme
Member
این لیست تک پیوندی هستش بعضی از کاراش انجام داده ست ولی کامل نشده ممنون میشم برنامه رو کامل کنین.....
این node:
اینم بقیه : کلا باید همه کارایی که توی برنامه اومده رو انجام بده....
این node:
کد:
template <class t>
class node{
private:
t data;
node <t> *next;
public:
node (void): data(0), next(0){}
node (const & d): data (d), next (0){}
~node (void) {
cout <<"exit from memory";
}
void setdata (const t & d) {
data = d;
}
t & getdata (void){
t *d = new t;
*d = data;
return *d;
}
void setnext (const node <t> *p ){
next = p;
}
node <t> *getnext (void){
return next;
}
};
کد:
template <class t>
class list{
private:
node <t> *first;
public:
list (void): first(0){}
list (const list<t> &l);
~list (void);
list<t> & operator= (const list <t> &);
list<t> & operator+= (const list <t> &);
bool operator== (const list <t> &);
list<t> & reverse (void);
void add (const t &);
void insert (const t &);
void remove (const t &);
bool listempty (void);
};
template <class t>
list <t>::list (const list <t> &l){
if(!l.list)
first = 0;
else
{
node <t> *p, *q, *lp;
first = new node<t> (l.first -> getdata());
q = first;
lp = l.first -> getnext();
while (lp!=0){
p = new node<t> (lp -> getdata());
q-> setnext(p);
lp = lp -> getnext();
q = p;
}
}
template <class t>
list <t> & list<t> ::operator= (const list <t> &l){
if(!l.list)
first = 0;
else
{
node <t> *p, *q, *lp;
first = new node<t> (l.first -> getdata());
q = first;
lp = l.first -> getnext();
while (lp!=0){
p = new node<t> (lp -> getdata());
q-> setnext(p);
lp = lp -> getnext();
q = p;
}
}
template <class t>
int list<t> :: operator== (const list <t> & l){
if(!first && !l.first)
return 1;
node <t> *p, *lp;
p = first;
lp = l.first;
while (p != 0 && lp !=0 ){
if (p -> getdata() != lp -> getdata ())
return 0;
p = p -> getnext();
lp = lp -> getnext();
}
if (p != 0 || lp != 0)
return 0;
return 1;
}
template <class t>
void list<t> :: add(const t & d){
node <t> *p = new node <t> (d);
if (!first)
first = p;
else{
p -> setnext (first);
first = p;
}
}