عرض مشاركة واحدة
  رقم المشاركة : ( 1 )  
قديم 6/3/2014, 01:22 PM
الصورة الرمزية لـونـا
 
لـونـا
مـهـند س جـديـد

 الأوسمة و جوائز
 بينات الاتصال بالعضو
 اخر مواضيع العضو
  لـونـا غير متصل  
الملف الشخصي
رقم العضوية : 355430
تاريخ التسجيل : Mar 2014
العمـر : 28
الـجنـس :
الدولـة :
المشاركـات : 1 [+]
آخــر تواجـد : ()
عدد الـنقـاط : 50
قوة التـرشيـح : لـونـا يستاهل التقييم
new stack using linked without pointers

السلام عليكم
اخواني الكرام
في مشاركتي الاول معكم اتنمى ان تساعدوني
في تحويل هذا الكود من مكدس باستخدام القائمة المتصلة (باستخدام المؤشرات و الوراثة) الى كود بدون الؤشرات و الوراثة
#include < iostream.h >
#include < stdlib.h >
#include < stdio.h >

class Cell
{
friend class Stacker;
public:
Cell(void *ptr, Cell *lst)
{
item = ptr;
next = lst;
}
private:
void *item;
Cell *next;
};

class Stacker
{
public:
Stacker(void (* d)(void *)) { dispfn = d; head = NULL; }
void push(void *t)
{
Cell *ptr;
if (t == NULL) return;
Cell *h = new Cell(t, head);
head = h;
}
void *pop()
{
if (head == NULL) return NULL;
void *ptr = head;
void *t = head->item;
head = head->next;
delete ptr;
return t;
}
void display()
{
if (head == NULL) { cout << "(empty)\n"; return; }
for (Cell *t=head ; t != NULL ; t=t->next) (dispfn)(t->item);
printf("\n");
}
int empty() { return head == NULL; }
private:
Cell *head;
void (* dispfn)(void *);
};

void intdisplay(void *t)
{
cout << *(int *)t << " ";
}

class IntStack
{
public:
IntStack() { stk = new Stacker(intdisplay); }
void push(int data)
{
int *n = new int;
*n = data;
stk->push(n);
}
int pop()
{
void *ptr = stk->pop();
if (ptr == NULL) return -1;
return *(int *)ptr;
}
void display() { stk->display(); }
private:
Stacker *stk;
};

void main()
{
IntStack *s = new IntStack();
int d;

s->display();
s->push(1);
s->display();
s->push(2);
s->display();
s->push(3);
s->display();
s->push(4);
s->display();
s->pop();
s->display();
s->pop();
s->display();
s->push(10);
s->display();
s->pop();
s->display();
s->pop();
s->display();
s->pop();
s->display();
s->pop();
s->display();
s->pop();
s->display();
}
ارجووووكم محتاجته ضرررررررررووووووررررررررري
رد مع اقتباس