| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 796 人关注过本帖, 1 人收藏
标题:帮我改改啊!!!sos!!
只看楼主 加入收藏
zhuqiaohai11
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-6-12
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:10 
帮我改改啊!!!sos!!
#include <iostream>
#include <iomanip>
using namespace std;

typedef struct BiNode
{
 char data;
 struct BiNode *lchild;
 struct BiNode *rchild;
}*BiTree,BiNode;

//创建一个二叉排序树//
BiTree *createBiTree(BiTree *T)
{char *p;
 char ch;
 p=T;
 while(p)
 {scanf("%c",ch);
  if(!(BiTree*)malloc(sizeof(BiTree)))
  return 0;
  p->data=ch;
  createBiTree(p->lchild);
  createBiTree(p->rchild);
 }
 return T;
}



//对二叉排序树做递增输出//
void  Dizeng(BiNode *T)
{
    int m,k;
    if(T!=NULL)
    {
        m++;
        Dizeng(T->lchild);
        printf("%d",T->data);
        k=k+m;
        Dizeng(T->rchild);

    }
}

//对二叉树做递减输出//
void Dijian(BiNode *T)
{
    if(T!=NULL)
    {
        Dijian(T->rchild);
        printf("%d",T->data);
        Dijian(T->lchild);
    }
}


//计算二叉排序树T的平均查找长度,输出结果//
void pjczcd()
{
    float ASL;
    ASL=(float)k/n;
    printf("平均查找长度为:%f",ASL);
}


//在二叉排序树T上删除指定结点
void Delete(BiTree &T, KeyType key)
{
    if(!T)  return FALSE;
    else{
        if(EQ(key,T->data.key))  return Delete(T);
        else if(LT(key,T->data.key))  return Delete(T->lchild,key);
        else return Delete(T->rchild,key);
    }
}

//二叉树的中序递归遍历查找//
void inorder(BiTNode *T){//中序遍历二叉树
if(T!=NULL){
 inorder(T-&gt;lchild );
 printf("%c ",T-&gt;data);
       inorder(BT-&gt;rchild );
}
}




//求二叉树的深度//
int TreeDepth(BiNode *T)  
{
    int leftdep, rightdep;        
    if(T==NULL) return(0);   
        else
            {  
              leftdep=TreeDepth(T->lchild);  
              rightdep=TreeDepth(T->rchild);  
    if( leftdep>rightdep)
        return(leftdep+1);
        else return(rightdep+1);
            }
}


//求二叉树的平衡因子//
int AVL(BiNode *T)
{
    int m1,n1,i;
    m1=TreeDepth(T->lchild);
    n1=TreeDepth(T->rchild);
    printf("左子树的深度:%d\n",m1);
    printf("右子树的深度:%d\n",n1);
    i=m1-n1;
    return i;
}

/************主函数***********/
void main()
{

     printf("\t..............................................\n");
     printf("\t         1.创建一棵二叉排序树                 \n");
     printf("\t         2.递增输出二叉排序树                 \n");
     printf("\t         3.递减输出二叉排序树                 \n");
     printf("\t         4.求二叉排序树的平均查找长度         \n");
     printf("\t         5.求二叉排序树某结点的平衡因子       \n");
     printf("\t         6.退出系统                           \n");
     printf("\t............................................\n\n");

    int m1,n1,i,choice;
    BiNode *h,*q;
    q=(BTNode *)malloc(sizeof(BTNode));q=NULL;
 for(;;)
   {   
        printf("请做出你的选择:");
      
       scanf("%d",&choice);
       switch(choice)
       {
       case 1:
              h=creatBiTree();getchar();break;
       case 2:
                 printf("二叉排序树的递增输出:");
              PreOrder(h);
               printf("\n");
              break;
       case 3:
               printf("二叉排序树的递减输出:");
               destorder(h);
               printf("\n");
               break;
       case 4:
               printf("二叉排序树的平均查找长度:");
               ASL();
               printf("\n");   
              break;
       case 5:
               printf("输入要求的结点:");
               scanf("%d",&m1);
               q=PreOrder(h,m1);
               printf("%d \n",q->data);
               i=AVL(q);
               printf("该结点的平衡因子为: %d\n",i);
               break;
    if(choice==7)
    {   
        exit(0);
    }
 }

 }
}
搜索更多相关主题的帖子: include return 
2012-06-12 11:09
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
q=(BTNode *)malloc(sizeof(BTNode));q=NULL;
看不明白这句话,BTNode是什么?不知道是不是BiNode,不管是什么node,你让q又等于空是什么意思,好家伙,一块内存泄露出去了。
2012-06-12 11:38
zhuqiaohai11
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-6-12
收藏
得分:0 
有一些是从网上找的。。。。但是又不知道怎么改
2012-06-14 16:24
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:4 
以下是引用zhuqiaohai11在2012-6-14 16:24:46的发言:

有一些是从网上找的。。。。但是又不知道怎么改

亲爱的妹纸,好好看看程序哦,看懂就知道改了呀。
2012-06-14 17:41
zhuqiaohai11
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-6-12
收藏
得分:0 
晕,就是看不懂啊!!不然干嘛发帖子
2012-06-15 08:32
never_yzq
Rank: 4
等 级:业余侠客
帖 子:112
专家分:213
注 册:2012-5-25
收藏
得分:4 
妹子,慢慢来吧,我也是新手,数据结构下一阶段的目标!
2012-06-15 09:26
zhuqiaohai11
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-6-12
收藏
得分:0 
慢不了啊 ,要交实验报告了
2012-06-16 19:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
既然花那么多的时间都没看懂别人的程序,不如用同样的时间自己写一个。以后不要拿别人的代码出来问了。

授人以渔,不授人以鱼。
2012-06-16 20:38
zhuqiaohai11
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-6-12
收藏
得分:0 
回复 8楼 TonyDeng
晕倒!我又没说不是自己写的,只是部分参考别人的而已!
2012-06-18 14:30
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:4 
子曾经曰:
最郁闷的事情有三件:
1、看别人写的代码;
2、三级以上的拖拉机被打住;
3、大感冒还要陪逛街。
偶也建议,看不懂别人的代码,就自己写一个。简单,省时,省力。
2012-06-18 16:58
快速回复:帮我改改啊!!!sos!!
数据加载中...
 
   



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

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