• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

C77431

الاعضاء المجتهدين
  • عدد المشاركات

    248
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

144 جيد جدا

عن C77431

  • الرتبة
    عضو

معلومات الملف الشخصي

  • الجنس غير محدد
  1. طلب صغير

    کما قال الأستاذ ذاکر، إنقر علیه بالیمین و ثم troubleshoot compatibility ، إن شغل فصحیح و إلا لا ( و لا أظن سیشتغل)
  2. و أما بالنسبة للخاصیة الجدیدة یعنی "المفضّلة" فی الملف الشخصی، إن کان یمکن ان نجعل بعض الأعضاء ایضا فی المفضلة لنتابع ردودهم و مواضیعهم الجدیدة.
  3. selection,bubble,insertion sort

    و علیکم السلام و رحمة الله و برکاته اهلا و سهلا بک أخوی فی المنتدی، بارک الله فیک فوائد البحث: *شرح مفصل و کثیر، *اکواد کاملة و واضحة *الحصول علی المطلوب بطرفة العین *و ... تفضل: موقع algolist.net یختص بهیک مواضیع (الأکواد موجودة فی الأسفل) Bubble sort quick sort insertion sort selection sort إن ما اعجبک: هذا مثال، أطیب تحیة
  4. و علیکم السلام و رحمة الله و برکاته.. اهلا و سهلا بک اختنا فی المنتدی.. بالتأکید دلوک علی المکان الصحیح، هنا نحن نجمع علی ان نساعد البعض، سنساعدتک ان شاء الله، لکن هل انت حاولت لحل هذا السوال؟ اکتبی هنا أی محاولة و أی شیئ من الاکواد ( ولو ممتلأ من الأخطاء) و ستجدین المساعدة، لکن حل السوال دون ای محاولة من قِبل السائل، فهو مخالف أطیب تحیة
  5. و هذا هو الخط المفضل عندی.. جمیل و واضح جدا فی التصغیر و التکبیر.. لا اعلم ان یمکن استخدامه او خط شبیه بهذا. مثال: adobe arabic و هذا من مقالات موقع الدرر السنیة:
  6. temp یحفظ قیمة x قبل ان یتم تنقیصها.
  7. شکرا للأخ محمد علاء الدین للتصحیح الکود الذی قام بکتابته، لیس نفس کودک، کودک نتجیته هی 9 و کود الأخ نتیجته هی 12 شرح الاستاذ علاء الدین کان کامل، بالاختصار، هنا: x + f(--x) الدالة f لها اولویة أعلی من + ، لذا اولا یتم تنفیذ الدالة و ثم جمع نتیجتها مع x ، لکن قیمة x تم تغییرها سابقا فی الدالة (x-- ) ، و فی النهایة النتیجة هی 9 ان فی الاختبار ما کان عدد 9 ضمن الخیارات ، فالخطأ من الاختبار و لا هذا الکود. أطیب تحیة
  8. لیس دائما! ربما یکون کما قالت الأخت (فی بعض compilers ) لأن هذا هو undefined behaviour. و لیس sequence point فی + مثلا: b= ++a + a; ما هی النتیجة ان کان فی البدایة a=2 ؟ لا نعلم! ربما 5 ربما 6 أطیب تحیة
  9. 0- و علیکم السلام و رحمة الله و برکاته . 1- لهکذا أمور اساسیة ارجعی بالکتاب . 2- ان لا تریدین العمل برقم 1 ، ابحثی لکل موضوع، علی انفراد. بالبحث ستحصلین أکثر من الشرح هنا.. خاصة ان تجیدین الانجلیزیة . 3- ما الذی انت طلبت شرحه، یُشرح فی دورة دراسیة کاملة، فکیف تریدین شرحه هنا فی موضوع واحد؟ . 4- هذا موضوعک، سؤال، و یجب اختیار نوع مناسب یعنی "سؤال" و مع نقاط معینة و لا "دروس" . 5- إن بدلا من الکلمات الانجلیزیة ، استخدمی بدلهم فی العربیة، فهو أفضل.. علی الأقل اکتبی الکلمة الانجلیزیة بشکلها الصحیح، یعنی بدلا من " الآری و آلبوینترز" اکتبی هکذا من فضلک: array و pointers 6- رقم 5 فی حالة الاجبار، لکن فی غیر حالة الاجبار من فضلک احرصی علی اللغة العربیة الجمیلة، لا اعلم ما هو بـ " من فضلکم" و نترکها و نستخدم "بلیز". أنا مع أنی لا أجید اللغة العربیة و لست عرب، لکن لا أحب ان استخدم الکلمات الانجلیزیة فیها. 7- ان تجیدین الانجلیزیة ( کما یبدو فی تحدثک) فالقی نظرة بموقع Stackoverflow.com ، هناک ستجدین جواب لکل هذه الأسئلة ان شاء الله.. . 8- أنا ما اعطیتک سالب، حتی اعطیتک ایجاب ایضا 9- حیاکم الله. ( نصف ما قلت کان مزاح و نصفه بجد :) ) اطیب تحیة و وفقکم الله.
  10. ممكن مسآعدة

    MSDN Forum ( بعض الاحیان البحث یساعدنا أکثر و افضل و أسرع :) ) حیاکم الله، أطیب تحیة
  11. أسئلة في binary search tree

    للعمق: مع دالة recursive نحاسب أطول فرع ممکن، شیء کمثل هذا: int depth( Node n ) { if ( n->left != NULL && n->right != NULL ) return ( max( depth( n->left), depth( n->right)) + 1 ); else if (n->left != null) return (depth( n->left) + 1); else if (n->right != null) return (depth( n->right) + 1); else return 1; } للعدد الاصغر و الاکبر: فالعدد الاصغر هو فی أقصی یسار و العدد الاکبر هو فی اقصی یمین.. یعنی العنصر الاول و الآخر فی inorder أطیب تحیة.
  12. أسئلة في binary search tree

    حسنا... ما کان خطأ فی preorder , inorder, postorder کما ذکرتِ ، یعمل بشکل صحیح.. لکن کما تعلمین، الشجرة تفرق ان ندخل الاعداد بترتیب مختلف، أظن انک تظنین هو بخطأ لهذا السبب. ادخلی الاعداد بهذا الترتیب: 40 25 10 29 100 یعنی یصبح root=40 فسترین لا خطأ.. والناتج کالتالی و صحیح: لکن کان خطأ صغیر فی insert : لیس صحیح ان یکون هناک duplicate. هذا بعد التصحیح ذلک: #include <iostream> #include <cstdlib> using namespace std; class BinarySearchTree { private: struct tree_node { tree_node* left; tree_node* right; int data; }; tree_node* root; public: BinarySearchTree() { root = NULL; } bool isEmpty() const { return root==NULL; } void print_inorder(); void inorder(tree_node*); void print_preorder(); void preorder(tree_node*); void print_postorder(); void postorder(tree_node*); void insert(int); void remove(int); }; // Smaller elements go left // larger elements go right void BinarySearchTree::insert(int d) { tree_node* t = new tree_node; t->data = d; t->left = NULL; t->right = NULL; // is this a new tree? if(isEmpty()) root = t; else { //Note: ALL insertions are as leaf nodes tree_node* curr; curr = root; tree_node* parent; parent=root; // Find the Node's parent while(curr != NULL) { parent=curr; if(curr->data == t->data) return; // we had such a number else if(t->data > curr->data) curr = curr->right; else if (t->data < curr->data) curr=curr->left; } //Now we are in the correct node //Inserting.. if (t->data < parent->data) parent->left = t; else parent->right= t; } cout<<"\nDone!"; } void BinarySearchTree::remove(int d) { //Locate the element bool found = false; if(isEmpty()) { cout<<" This Tree is empty! "<<endl; return; } tree_node* curr; tree_node* parent; curr = root; while(curr != NULL) { if(curr->data == d) { found = true; break; } else { parent = curr; if(d>curr->data) curr = curr->right; else curr = curr->left; } } if(!found) { cout<<" Data not found! "<<endl; return; } // 3 cases : // 1. We're removing a leaf node // 2. We're removing a node with a single child // 3. we're removing a node with 2 children // Node with single child if((curr->left == NULL && curr->right != NULL)|| (curr->left != NULL && curr->right == NULL)) { if(curr->left == NULL && curr->right != NULL) { if(parent->left == curr) { parent->left = curr->right; delete curr; } else { parent->right = curr->right; delete curr; } } else // left child present, no right child { if(parent->left == curr) { parent->left = curr->left; delete curr; } else { parent->right = curr->left; delete curr; } } return; } //We're looking at a leaf node if( curr->left == NULL && curr->right == NULL) { if(parent->left == curr) parent->left = NULL; else parent->right = NULL; delete curr; return; } //Node with 2 children // replace node with smallest value in right subtree if (curr->left != NULL && curr->right != NULL) { tree_node* chkr; chkr = curr->right; if((chkr->left == NULL) && (chkr->right == NULL)) { curr = chkr; delete chkr; curr->right = NULL; } else // right child has children { //if the node's right child has a left child // Move all the way down left to locate smallest element if((curr->right)->left != NULL) { tree_node* lcurr; tree_node* lcurrp; lcurrp = curr->right; lcurr = (curr->right)->left; while(lcurr->left != NULL) { lcurrp = lcurr; lcurr = lcurr->left; } curr->data = lcurr->data; delete lcurr; lcurrp->left = NULL; } else { tree_node* tmp; tmp = curr->right; curr->data = tmp->data; curr->right = tmp->right; delete tmp; } } return; } } void BinarySearchTree::print_inorder() { inorder(root); } void BinarySearchTree::inorder(tree_node* p) { if(p != NULL) { inorder(p->left); cout<<" "<<p->data<<" "; inorder(p->right); } } void BinarySearchTree::print_preorder() { preorder(root); } void BinarySearchTree::preorder(tree_node* p) { if(p != NULL) { cout<<" "<<p->data<<" "; preorder(p->left); preorder(p->right); } } void BinarySearchTree::print_postorder() { postorder(root); } void BinarySearchTree::postorder(tree_node* p) { if(p != NULL) { postorder(p->left); postorder(p->right); cout<<" "<<p->data<<" "; } } int main() { BinarySearchTree b; int ch,tmp,tmp1; while(1) { cout<<endl<<endl; cout<<" Binary Search Tree Operations "<<endl; cout<<" ----------------------------- "<<endl; cout<<" 1. Insertion/Creation "<<endl; cout<<" 2. In-Order Traversal "<<endl; cout<<" 3. Pre-Order Traversal "<<endl; cout<<" 4. Post-Order Traversal "<<endl; cout<<" 5. Removal "<<endl; cout<<" 6. Exit "<<endl; cout<<" Enter your choice : "; cin>>ch; switch(ch) { case 1 : cout<<" Enter Number to be inserted : "; cin>>tmp; b.insert(tmp); break; case 2 : cout<<endl; cout<<" In-Order Traversal "<<endl; cout<<" -------------------"<<endl; b.print_inorder(); break; case 3 : cout<<endl; cout<<" Pre-Order Traversal "<<endl; cout<<" -------------------"<<endl; b.print_preorder(); break; case 4 : cout<<endl; cout<<" Post-Order Traversal "<<endl; cout<<" --------------------"<<endl; b.print_postorder(); break; case 5 : cout<<" Enter data to be deleted : "; cin>>tmp1; b.remove(tmp1); break; case 6 : return 0; } } } ( ما نظرت بدالة remove، لا اعلم عن صحتها ).. أطیب تحیة.
  13. أسئلة في binary search tree

    و علیکم السلام و رحمة الله و برکاته. لقد نویت أساعدک و نسخت اکوادک فی notepad، لکن کودک یحتوی علی 291 سطر و الوقت لا یسمحنی الآن قراءة کلهم (لدی أیضا اختبارات :) ) یا لیت کنت تحددین أین الخطأ بالضبط، علی أی حال القی نظرة بهذا الموقع: algolist.net یوجد فیه کل الاکواد المطلوبة: BST >add >remove >search >get values آسف للتقصیر أطیب تحیة.
  14. اهلا رائد، أنت من زمان ترید ان تختار اسم مناسب لأسئلتک، لکن مازال فی علم الغیب متی سیأتی :P أمزح معک.. لکن عن جد حاول ان تختار اسم مناسب یدل علی المشکل و السوال. أطیب تحیة
  15. كيفيه وضع ثيم؟؟

    اضغطی علیهم :)