网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
数据结构C语言实现系列——二叉树
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
bsp;}
     }
  i++;  /* 为扫描下一个字符修改i值 */
 }
 return;
}

/* 3.检查二叉树是否为空,为空则返回1,否则返回0 */
int emptyBTree(struct BTreeNode *bt)
{
 if(bt == NULL){
     return 1;
 }else{
     return 0;
 }
}

/* 4.求二叉树深度 */
int BTreeDepth(struct BTreeNode *bt)
{
 if(bt == NULL){
     return 0;  /* 对于空树,返回0结束递归 */
 }else{
     int dep1 = BTreeDepth(bt- >left);  /* 计算左子树的深度 */
  int dep2 = BTreeDepth(bt- >right);  /* 计算右子树的深度 */
  if(dep1 > dep2){
      return dep1 + 1;
  }else{
      return dep2 + 1;
  }
 }
}

/* 5.从二叉树中查找值为x的结点,若存在则返回元素存储位置,否则返回空值 */
elemType *findBTree(struct BTreeNode *bt, elemType x)
{
 if(bt == NULL){
     return NULL;
 }else{
     if(bt- >data == x){
         return &(bt->data);
     }else{ /* 分别向左右子树递归查找 */
         elemType *p;
   if(p = findBTree(bt- >left, x)){
       return p;
   }
   if(p = findBTree(bt- >right, x)){
       return p;
   }
   return NULL;
     }
 }
}

/* 6.输出二叉树(前序遍历) */
void printBTree(struct BTreeNode *bt)
{
 /* 树为空时结束递归,否则执行如下操作 */
 if(bt != NULL){
     printf( "%c", bt->data);  /* 输出根结点的值 */ 
  if(bt- >left != NULL || bt->right != NULL){
   printf( "(");
   printBTree(bt- >left);
   if(bt- >right != NULL){
       printf( ",");
   }
   printBTree(bt- >right);
   printf( ")");
  }  
 }
 return;
}

/* 7.清除二叉树,使之变为一棵空树 */
void clearBTree(struct BTreeNode* *bt)
{
 if(*bt != NULL){
     clearBTree( &((*bt)->left));
  clearBTree( &((*bt)->right));
  free(*bt);
  *bt = NULL;
 }
 return;
}

/* 8.前序遍历 */
void preOrder(struct BTreeNode *bt)
{
 if(bt != NULL){
     printf( "%c ", bt->data);  /* 访问根结点 */
  preOrder(bt- >left);    /* 前序遍历左子树 */
  preOrder(bt- >right);   /* 前序遍历右子树 */
 }
 return;
}


/* 9.前序遍历 */
void inOrder(struct BTreeNode *bt)
{
 if(bt != NULL){
  inOrder(bt- >left);    /*

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号