لیست تک پیوندی

این لیست تک پیوندی هستش بعضی از کاراش انجام داده ست ولی کامل نشده ممنون میشم برنامه رو کامل کنین.....
این 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;
     }
}
 

nima_dir

Active Member
سلام دوست عزيز
توي همين انجمن اگه بگردي يه سري كد گذاشتم از زمان جوونيهام
كلي از اين چيزا توش داره با سي پلاس پلاس نوشته شده و خيلي سادست
ميتوني استفاده كني يه دعايي هم در حق ما بكني
 
من باید اینو کامل کنم وگرنه برنامه های مختلف دیدم مشکلم حل نشد گفتم شاید یکی اینو کامل کنه تا کارم راه بیوفته.... من کد هایی که شما گذاشتین رو دیدم ممنون اونا هم کدای خوبی بودن...
 

جدیدترین ارسال ها

بالا