| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1395 人关注过本帖
标题:[求助]关于二叉树的编程(C语言)
只看楼主 加入收藏
HaseoDG
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-2
收藏
 问题点数:0 回复次数:3 
[求助]关于二叉树的编程(C语言)
1.编写函数,输入字符序列,建立二叉树的二叉链表。
2.编写函数,实现二叉树的中序递归遍历算法。(最好也能实现前缀和后缀遍历算法)
3.编写函数,实现二叉树的中序非递归遍历算法。
4.编写函数,借助队列实现二叉树的层次遍历算法。
5.编写函数,求二叉树的高度。
6.编写函数,求二叉树的结点个数。
7.编写函数,求二叉树的叶子个数。
8.编写函数,交换二叉树每个结点的左子树和右子树。
9.编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法。
搜索更多相关主题的帖子: 二叉树 C语言 函数 历算 编写 
2006-11-23 16:52
hzcjg
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-11-24
收藏
得分:0 

我是数据结构老师,可以帮助你学习数据结构,例如习题解答、上机指导、辅导答疑等。

有意者联系:QQ群:3737570

[此贴子已经被作者于2006-11-27 12:23:01编辑过]


我是大学老师,C语言、数据结构学习需要帮助的联系我。QQ群:3737570
2006-11-24 10:31
迷路的小孩
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-11-10
收藏
得分:0 

#include<stdio.h>
#include<stdlib.h>
#define NULL 0
#define MAX 100
typedef int elem;
typedef struct BiTNode
{elem data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
typedef struct
{elem queue[MAX];
int front,rear;
}SP;
void preorder(BiTree t)
{/*先序遍历二叉树*/
if(t!=NULL)
{printf("%3d\t",t->data);
preorder(t->lchild);
preorder(t->rchild);
}
}
void order(BiTree t)
{ /*中序遍历二叉树*/
if(t!=NULL)
{order(t->lchild);
printf("%3d\t",t->data);
order(t->rchild);}
}
void postorder(BiTree t)
{ /*后序遍历二叉树*/
if(t!=NULL)
{postorder(t->lchild);
postorder(t->rchild);
printf("%3d\t",t->data);
}
}
void level(BiTree t)
{ /*按层次遍历*/
SP*p;
p=(SP*)malloc(sizeof(SP));
p->front=0;
p->rear=0;
if(t!=NULL)
{
p->queue[p->front]=t;
p->front=p->front+1;
}

while(p->front!=p->rear)
{ t=p->queue[p->rear];
p->rear=p->rear+1;
printf("%3d",t->data);
if(t->lchild!=NULL)
{p->queue[p->front]=t->lchild;/*左孩子近队列*/
p->front=p->front+1;
}
if(t->rchild!=NULL)
{p->queue[p->front]=t->rchild;/*右孩子近队列*/
p->front=p->front+1;
}}
}
BiTree createbitree()
{/*输入先序序列建立二叉树*/
BiTree t;
int i;
scanf("%d",&i);
if(i==-1)
t=NULL;
else
{t=(BiTNode*)malloc(sizeof(BiTNode));
t->data=i;
t->lchild=createbitree();
t->rchild=createbitree();}
return t;
}
main()
{BiTree root;
root=createbitree();
printf("\n先序遍历\n");
preorder(root);
printf("\n中序遍历\n");
order(root);
printf("\n后序遍历\n");
postorder(root);
printf("\n按层遍历\n");
level(root);
getch();
}

2006-11-26 20:23
liangjun338
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-12-21
收藏
得分:0 
2006-12-21 18:49
快速回复:[求助]关于二叉树的编程(C语言)
数据加载中...
 
   



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

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