《数据结构》的课程设计,题目是请设计一个算法,把二叉树的叶子结点按从左到右的顺序连成。

很多大学数据结构课程设计题目都是一样的,有木有谁有这个题目的设计结果,源程序,或者连程序介绍,流程图等等都搞好的就更好了~或者哪位高手给写个程序,要可以运行的那种,DOS窗口就可以,thanks~~~~~

第1个回答  2011-07-07
下面是函数
//定义二叉树链式结构
typedef struct BitNode
{
char data; //数据域
struct BitNode *lchild,*rchild;//左右指针域
}BitNode,*BiTree;

//叶子节点从左到右依次存入链表中
//bt-二叉树,head-表头,pre-前趋节点
void LeafLink(BiTree bt,BiTree &head,BiTree &pre)
{
if(bt!=NULL)
{
LeafLink(bt->lchild,head,pre);

if(bt->lchild==NULL&&bt->rchild==NULL)//叶子节点
{
BiTree s;

s=(BiTree)malloc(sizeof(BitNode));
if(s==NULL)
{
printf("建立单链表申请内存出错\n");
exit(-1);
}
memcpy(s,bt,sizeof(BitNode));//内存拷贝,不破坏原二叉树信息
if(pre==NULL)//第一个叶子节点
{
head=s;
pre=s;
}
else
{
pre->rchild=s;
pre=s;
}
}

LeafLink(bt->rchild,head,pre);

pre->rchild=NULL;//最后节点后续为空

}
}本回答被提问者采纳
第2个回答  2011-07-05
你还是去相关论坛发个帖子吧,应该很多人会弄,我不会,只是建议。
相似回答