| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 806 人关注过本帖
标题:用C++ 6.0编写二叉法 用红色标出来的地方不知道怎么写?帮帮忙
只看楼主 加入收藏
Q413416317
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-4-7
收藏
 问题点数:0 回复次数:1 
用C++ 6.0编写二叉法 用红色标出来的地方不知道怎么写?帮帮忙
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
#include <stdlib.h>
/********************************************************/
#define OK  1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define N   10
#define MAXSIZE 50
#define TRUE 1
#define FALSE 0

 

typedef char ElemType;   //数据类型
typedef int  Status;    //返回值类型
/********************************************************/
typedef struct BiTNode{
 ElemType data;
 struct BiTNode *lChild;
 struct BiTNode *rChild;
 
 }BiTNode, *BiTree;
/********************************************************/

 

/********************************************************/
//队列的定义
typedef BiTree QueueElementType;
typedef struct  
{
 QueueElementType element[MAXSIZE];
 int front;
 int rear;
}SeqQueue;

void InitQueue(SeqQueue *Q)
{
 Q->front = Q->rear = 0;
}

int EnterQueue(SeqQueue *Q,QueueElementType x)
{
 if((Q->rear+1)%MAXSIZE ==Q->front)
 {
  return(FALSE);
 }
 Q->element[Q->rear] = x;
 Q->rear = (Q->rear+1)%MAXSIZE;
 return (TRUE);
}
int IsEmpty(SeqQueue Q)
{
 if (Q.front==Q.rear)
 {
  return 1;
 }
 else
  return 0;
}
int DeleteQueue(SeqQueue *Q,QueueElementType *x)
{
 if(Q->front == Q->rear)
  return(FALSE);
 *x =Q->element[Q->front];
 Q->front = (Q->front+1)%MAXSIZE;
 return(TRUE);
}

int GetHead(SeqQueue Q,QueueElementType *x)
{
 if(Q.front == Q.rear)
  return(FALSE);
 *x =Q.element[Q.front];
 return(TRUE);
}//队列定义结束
/****************************************************/

 


//先序创建二叉树
 Status CreateBiTree(BiTree *T)
{
 
   
 return OK;
}

 


/********************************************************/
//先序遍历二叉树
void TraverseBiTree(BiTree T)
{
 if (NULL == T)
  return ;

 printf("%c ", T->data);
 TraverseBiTree(T->lChild);
 TraverseBiTree(T->rChild);
}


//中序遍历二叉树
void InOrder(BiTree T)
{
if (NULL == T)
  return ;

 InOrder(T->lChild);
 printf("%c ", T->data);
 InOrder(T->rChild);
}

//后序遍历二叉树
void PostOrder(BiTree T)
{
 if (NULL == T)
  return ;

 PostOrder(T->lChild);
 PostOrder(T->rChild);
 printf("%c ", T->data);

}
/***********************************************************/
//凹入表表示法输出二叉树

/*void DispBiTree_into(BiTree T, int i)
{   
 if(T==NULL)return;
 PrintTree(T->pRight,i+1);
 for(int n=0;n<i;n++)
     printf("");
 printf("%c\n",    T->ch);
 PrintfTree(T->pLeft,i+1);
}*/
/********************************************************/
//二叉树的输出嵌套括号表示法
void DispBiTree(BiTree T)
{
 if (NULL != T)
 {
  printf("%c", T->data);
  if (T->lChild!=NULL || T->rChild!=NULL)
  {
   printf("(");
   DispBiTree(T->lChild);
   if (NULL != T->rChild)
    printf(",");
   DispBiTree(T->rChild);
   printf(")");
  }
 }
}

/********************************************/

 

/********************************************************/
//查找结点 如果找到就返回指向该结点的指针 否则返回NULL
BiTree locate(BiTree T, ElemType e)
{

}
/********************************************************/
//统计树中结点的个数
int leaf(BiTree T)
{
    int LeafCount;
    if(T==NULL)
        LeafCount=0;
    else if((T->lChild==NULL)&&(T->rChild==NULL))
        LeafCount=1;
        else
        LeafCount=leaf(T->lChild)+leaf(T->rChild);
    return LeafCount;
 //现算法
}
/********************************************************/

//求二叉树的高度
int depth(BiTree T)
{
  
    //实现求高度算法

}
void levelCount(BiTree t,int l,int num[])
{   //求二叉树的层数


}


/********************************************************/
void main(void)
{
 BiTree T;
 BiTree p;
    int num[]={0};
 CreateBiTree(&T);
 levelCount(T,1,num);
 int height=depth(T);
 for(i=1;i<=height;i++)
  printf("第%d层个数:%d\n",i,num[i]);

 DispBiTree_into(T, 0);
 p = locate(T, 'c');
 if (p)
 {
      printf("\n\n%c\n", p->data);
 }
 
 getchar();
}
搜索更多相关主题的帖子: include 
2013-04-07 22:05
nuistkevin
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2013-4-15
收藏
得分:0 
猎头职位-软件工程师
岗位职责
1.与世界顶尖的软件工程师共同开发虚拟化云计算产品
2.能独立处理和解决所负责的任务;
3.进行程序单元、功能的测试,查出软件存在的缺陷并保证其质量。
任职资格
1、 211或985高校计算机科学与技术或软件专业,英文流利;
2、 具有很强的学习能力和解决问题的能力;
3、 至少3年以上软件开发经验,精通C语言/C++,热衷于技术专研;
4、 熟练的数据结构知识体系与较强的算法能力,对堆栈、2X树、多X树有一定了解
5、 熟悉Windows, Linux X86/64 操作系统;
6、 熟悉Network configurations and environments;

工作地点:上海
有意者可以发送您的中英文简历至邮箱:
junpingwu@
QQ:2571168815
2013-04-15 11:59
快速回复:用C++ 6.0编写二叉法 用红色标出来的地方不知道怎么写?帮帮忙
数据加载中...
 
   



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

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