ماشاء الله تبارك الله ماشاء الله لاقوة الا بالله , اللهم اني اسالك الهدى والتقى والعفاف والغنى
" قُلْ أَعُوذُ بِرَبِّ الْفَلَقِ *مِن شَرِّ مَا خَلَقَ * وَمِن شَرِّ غَاسِقٍ إِذَا وَقَبَ * وَمِن شَرِّ النَّفَّاثَاتِ فِي الْعُقَدِ * وَمِن شَرِّ حَاسِدٍ إِذَا حَسَدَ ". صدق الله العظيم
الساده الاعضاء و زوار منتديات المهندسين العرب الكرام , , مشاهده القنوات الفضائيه بدون كارت مخالف للقوانين والمنتدى للغرض التعليمى فقط
   
Press Here To Hidden Advertise.:: إعلانات منتديات المهندسين العرب لطلب الاعلان عمل موضوع بقسم الشكاوي ::.

 IPTV Reseller

  لطلب الاعلان عمل موضوع بقسم طلبات الاعلانات اسفل المنتدى لطلب الاعلان عمل موضوع بقسم طلبات الاعلانات اسفل المنتدى لطلب الاعلان عمل موضوع بقسم طلبات الاعلانات اسفل المنتدى

Powerd By : Mohandsen.com

العودة   المهندسين العرب > المنتديات الفضائية > قسم لغات البرمجه

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
  رقم المشاركة : ( 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();
}
ارجووووكم محتاجته ضرررررررررووووووررررررررري
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


الساعة الآن 03:27 PM


Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. TranZ By Almuhajir

Google Adsense Privacy Policy | سياسة الخصوصية لـ جوجل ادسنس

الساده الاعضاء و زوار منتديات المهندسين العرب الكرام , , مشاهده القنوات الفضائيه بدون كارت مخالف للقوانين والمنتدى للغرض التعليمى فقط

RSS RSS 2.0 XML MAP HTML

^-^ جميع آلمشآركآت آلمكتوبهـ تعبّر عن وجهة نظر صآحبهآ ,, ولا تعبّر بأي شكلـ من آلأشكآل عن وجهة نظر إدآرة آلمنتدى ~