网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
数据结构C语言实现系列——二叉树
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
中序遍历左子树 */
     printf( "%c ", bt->data);  /* 访问根结点 */
  inOrder(bt- >right);    /* 中序遍历右子树 */
 }
 return;
}

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

/* 11.按层遍历 */
void levelOrder(struct BTreeNode *bt)
{
 struct BTreeNode *p;
 struct BTreeNode *q[QUEUE_MAX_SIZE];
 int front = 0, rear = 0;
 /* 将树根指针进队 */
 if(bt != NULL){
     rear = (rear + 1) % QUEUE_MAX_SIZE;
  q[rear] = bt;
 }
 while(front != rear){  /* 队列非空 */
     front = (front + 1) % QUEUE_MAX_SIZE; /* 使队首指针指向队首元素 */
  p = q[front];
  printf( "%c ", p->data);
  /* 若结点存在左孩子,则左孩子结点指针进队 */
  if(p- >left != NULL){
      rear = (rear + 1) % QUEUE_MAX_SIZE;
   q[rear] = p- >left;
  }
  /* 若结点存在右孩子,则右孩子结点指针进队 */
  if(p- >right != NULL){
      rear = (rear + 1) % QUEUE_MAX_SIZE;
   q[rear] = p- >right;
  }
 }
 return;
}

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

/*
int main(int argc, char *argv)
{
 struct BTreeNode *bt; /* 指向二叉树根结点的指针 */
 char *b;    /* 用于存入二叉树广义表的字符串 */
 elemType x, *px;
 initBTree( &bt);
 printf( "输入二叉树广义表的字符串:\n");
 /* scanf( "%s", b); */
 b = "a(b(c), d(e(f, g), h(, i)))";
 createBTree( &bt, b);
 if(bt != NULL)
 printf( " %c ", bt->data);
 printf( "以广义表的形式输出:\n");
 printBTree(bt);   /* 以广义表的形式输出二叉树 */
 printf( "\n");
 printf( "前序:");  /* 前序遍历 */
 preOrder(bt);
 printf( "\n");
 printf( "中序:");  /* 中序遍历 */
 inOrder(bt);
 printf( "\n");
 printf( "后序:");  /* 后序遍历 */
 postOrder(bt);
 printf( "\n");
 printf( "按层:");  /* 按层遍历 */
 levelOrder(bt);
 printf( "\n");
 /* 从二叉树中查找一个元素结点 */
 printf( "输入一个待查找的字符:\n");
 scanf( " %c", &x);  /* 格式串中的空格跳过空白字符 */
 px = findBTree(bt, x);
 if(px){
     printf( "查找成功:%c\n", *px);
 }else{
     printf( "查找失败!\n");
 }
 printf( "二叉树的深度为:");
 printf( "%d\n", BTreeDepth(bt));
 clearBTree( &bt);
 return 0;
}
*/

&n

网学推荐

免费论文

原创论文

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