已知二叉树采用二叉链表存储,设计算法以输出二叉树从根结点到每个叶子结点的路径。
#include <stdio.h>
#include <stdlib.h>
#define maxsize 20
typedef struct Node
{
char data;
struct Node *lchild,*rchild;
}Node,*BiTree;
int CreateBiTree(BiTree *T);
void OutputPath(BiTree T,BiTree *Q,int pos);
int main()
{
BiTree *T;
T=(BiTree *)malloc(sizeof(BiTree));
CreateBiTree(T);
BiTree Q[maxsize];
OutputPath(*T,Q,0);
return 0;
}
int CreateBiTree(BiTree *T)
{
fflush(stdin);
printf("please input the node data:");
char ch;
scanf("%c",&ch);
*T=(BiTree)malloc(sizeof(Node));
(*T)->data=ch;
char c;
fflush(stdin);
printf("Dose %c has leftchild(y--yes,n--no):",ch);
scanf("%c",&c);
if(c=='y')
CreateBiTree(&(*T)->lchild);
else
(*T)->lchild=NULL;
fflush(stdin);
printf("Dose %c has rightchild(y--yes,n--no):",ch);
scanf("%c",&c);
if(c=