软考程序员教程重点提炼之二叉树的中序输出问题

程序员 责任编辑:小狐狸 2016-08-09

添加老师微信

备考咨询

加我微信

摘要:下面是希赛软考学院为大家提供的软考程序员教程重点提炼之二叉树的中序输出问题,希望能帮助学友们

       >>>>点击进入了解程序员培训视频

   >>>>点击进入了解程序员在线辅导

 >>>>点击进入了解程序员考试教材


       下面是希赛软考网为大家提供的软考程序员教程重点提炼之二叉树的中序输出问题,希望能帮助学友们。


       这个程序的思路是自己输入数字,在输入的同时,已经帮你左右顺序排好了,即左子树的数字比右子树小,是个顺序二叉树,以输入0为结素,而后一中序遍历输出,但不知道为什么,在屏幕上打引的却是左子树最小的数字,而且一直输出,请看下面程序:

       #include

       #include

       typedef struct no

       {

       int key;

       struct no*left,*right;

       }node,*PNOD;

       void inster(PNOD*p,int k)

       {

       PNOD ppre,pre,temp;

       ppre=*p;

       printf(“current number ppre%d”,ppre->key);

       if(ppre==NULL)

       {

       ppre=(node*)malloc(sizeof(node));

       ppre->key=k;

       ppre->left=NULL;

       ppre->right=NULL;

       *p=ppre;

       return;

       }

       while(ppre)

       {

       if(k<ppre->key)

       {

       temp=ppre;

       ppre=ppre->left;

       printf(“left\n”);

       }

       else if(k==ppre->key)

       {

       printf(“has…\n”);

       return;

       }

       else if(k<ppre->key)

       {

       temp=ppre;

       ppre=ppre->right;

       printf(“right\n”);

       }

       /*printf(“aaaaaaaaaaaaaaaaaa”);*/

       }

       pre=(node*)malloc(sizeof(node));

       pre->key=k;

       pre->left=NULL;

       pre->right=NULL;

       if(temp-<key>;k)

       {

       temp->left=pre;

       }

       else

       {

       temp->right=pre;

       }

       }

       PNOD creat()

       {

       PNOD T=NULL;

       int k;

       printf(“please input number=”);

       scanf(“%d”,&k);

       while(k)

       {

       inster(&T,k);

       printf(“\nagain=”);

       scanf(“%d”,&k);

       }

       return T;

       }

       void found(PNOD t)

       {

       PNOD pp;

       pp=t;

       while(pp)

       {

       printf(“pp-<key=%d pp->eft=%d pp-<right=%d”,pp->key,pp-<left->key,pp-<right->key);

       printf(“\n”);

       found(pp->left);

       printf(“%5d”,pp->key);

       /*printf(“pp-<left=%d and pp=%d”,pp->left,pp);*/

       getchar();

       found(pp->right);

       }

       }

       main()

       {

       PNOD T=NULL;

       printf(“***************\n”);

       T=creat();

       found(T);

       }


       返回目录:软考程序员教程重点提炼之算法实例汇总


       希赛软考网拥有十四年软考培训经验一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程多样的培训方式包括在线辅导面授使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!