下面是函数
//定义二叉树链式结构
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;//最后节点后续为空
}
}
你还是去相关论坛发个帖子吧,应该很多人会弄,我不会,只是建议。