![]() |
|
مساعده في حل برنامج الشجرة بلغة c++6.0 - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4) +--- قسم : قسم لغة ++C (http://vb4arb.com/vb/forumdisplay.php?fid=19) +---- قسم : قسم اسئلة ++C (http://vb4arb.com/vb/forumdisplay.php?fid=34) +---- الموضوع : مساعده في حل برنامج الشجرة بلغة c++6.0 (/showthread.php?tid=45655) |
مساعده في حل برنامج الشجرة بلغة c++6.0 - PG_MJM - 11-03-23 سلام عليكم ورحمة الله وبركاته كيف حال ان شاء الله بخير صحة وعافية اريد اضيف شرط في دالة طباعة inorder في برنامج الشجرة void inorder(nodeptr & t)
{ if(t!=NULL) { inorder(t->l); cout<<t->info<<"---"; inorder(t->r); } } الشرط هو اذا ضفت عقدة وسطية للشجرة من اضغط رقم 4 inorder مايطبع برنامج يعني اذا دخلت شجرة متعددة مايطبع inorder بس اذا دخلت شجرة ثنائية يطبع inorder فما هو شرط الذي استخدمه بالدالة
وهذا برنامج كامل
#include<iostream.h>
#include<stdlib.h> #define null 0; struct node { char info; struct node *l,*m,*r; }; typedef struct node *nodeptr; void creatnode(nodeptr &t) { char ch; if(t==NULL) { t=new node; cout<<"enter value into tree node ="; cin>>t->info; t->l=null; t->m=null; t->r=null; cout<<"do you want add node form left="<<t->info<<endl; cout<<"choose(y)or(n)="; cin>>ch; if(ch=='y') creatnode(t->l); cout<<"do you want add node form middle"<<t->info<<endl; cout<<"choose(y)or(n)="; cin>>ch; if(ch=='y') creatnode(t->m); cout<<"do you want add node form right="<<t->info<<endl; cout<<"choose(y)or(n)="; cin>>ch; if(ch=='y') creatnode(t->r); } } void preorder(nodeptr &t) { if(t!=NULL) { cout<<t->info<<"---"; preorder(t->l); preorder(t->m); preorder(t->r); } } void postorder(nodeptr &t) { if(t!=NULL) { postorder(t->l); postorder(t->m); postorder(t->r); cout<<t->info<<"---"; } } void inorder(nodeptr & t) { if(t!=NULL) { inorder(t->l); cout<<t->info<<"---"; inorder(t->r); } } void main() { int x; nodeptr t; t=null; do { cout<<"1-creatnode\n"; cout<<"2-preorder\n"; cout<<"3-postorder\n"; cout<<"4-inorder\n"; cout<<"5-exit\n"; cout<<"enter your choice?"; cin>>x; switch(x) { case 1:creatnode(t);break; case 2:preorder(t);break; case 3:postorder(t);break; case 4:inorder(t);break; default:break; } } while(x!=5); } |