| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 921 人关注过本帖
标题:c语言变c++,大学生流行的课件题,帮忙改!
只看楼主 加入收藏
闯闯
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-6-28
收藏
 问题点数:0 回复次数:4 
c语言变c++,大学生流行的课件题,帮忙改!

#include<stdio.h>;

#include<stdlib.h>;

#define null 0

#define len sizeof(struct tree)

struct tree

{

int data;

struct tree *left,*right;

};

struct tree *head;

struct tree *creat()

{

struct tree *p,*q,*h,*i;

int n=0,x;

scanf("%d",&x);

while (x!=0)

{

n++;

if (n==1) {

h=(struct tree*)malloc(len);

h->data=x;

h->left=null;

h->right=null;

};

if (n!=1)

{

p=(struct tree*)malloc(len);

p->data=x;

p->left=null;

p->right=null;

q=h;

if (x>q->data) i=q->right;

else i=q->left;

while (i!=null)

{

q=i;

if (x>q->data) i=q->right;

else i=q->left;

};

if (x>q->data) q->right=p;

else q->left=p;

};

scanf("%d",&x);

};

return h;

}

void print(struct tree *p)

{

if (p!=null) {

print(p->left);

printf("%d ",p->data);

print(p->right);

}

}

int depth(nodetype *root) {

      if(root==NULL)

       return 0;

      else {

       h1=depth(root->lch);

       h2=depth(root->rch);

      

  return max(h1,h2)+1;

      }

}

int count(nodetype *root) {

      if(root==NULL)

       return 0;

      else {

       if(root->lch==NULL&&root->rch==NULL)

return 1;

else{

h1=count(root->lch);

        h2=count(root->rch);

        return h1+h2;

       }

}

}

main()

{ int active=10,active2=10,n;

while(active!=0){

printf("1、二叉树操作\n");

printf("2、树操作\n");

printf("0、退出\n");

printf("请选择菜单项:");

scanf("%d",&active);

switch(active){

case 1:

printf("1、建立二叉树\n");

printf("2、叶子结点数\n");

printf("3、二叉树的深度\n");

printf("0、返回\n");

printf("请选择菜单项:");

scanf("%d",&active2);

switch(active2){

case 1:

head=creat();

print(head);

break;

case 2:

printf("%d",count(head));break;

case 3:

printf("%d",depth(head));break;

case 0: break;

}

break;

case 2:

printf("1、建立树\n");

printf("2、结点数\n");

printf("0、返回\n");

printf("请选择菜单项:");

scanf("%d",&active2);

switch(active2){

case 1: sortShuoxue(L);break;

case 2: sortChengxu(L);break;

case 0: break;

}

break;

}

}

} 功能是建立二叉树并统计叶子接点的个数,还有计算出它的深度! 请八方豪杰来救救俺!!

搜索更多相关主题的帖子: c语言 课件 tree struct 大学生 
2005-06-28 15:36
jun1888
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-7-11
收藏
得分:0 
建一个树类包括一些私有数据和操作,把上面结构里的东西都放进去,然后在主函数中建立对象,执行操作就好了啊
2005-07-11 20:16
weiweiqiao
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-7-29
收藏
得分:0 
看的俺头晕。。。。

maCr.Qw
2005-08-03 19:59
randle
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-7-17
收藏
得分:0 
我看晕了
     希望以后多点注释
2005-08-07 16:15
沧海浮云
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2004-11-24
收藏
得分:0 
看晕了,编程能不能写点注释??

唯一能让我们高兴的是那刻意创造出来的缘分,于是说一句“惜缘”,可是谁都清楚,其中含有多少虚伪的真实!! ————2004年夏《.》
2005-08-09 11:23
快速回复:c语言变c++,大学生流行的课件题,帮忙改!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018813 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved