#include <stdio.h> #include <stdlib.h> #include "linktree.h"
#ifndef _LINKTREE_H #define _LINKTREE_H
typedef char linktree_data_t;
typedef struct linktree{ ?? ?linktree_data_t data; ?? ?struct linktree* lchild; ?? ?struct linktree* rchild; }lkt_node,*lkt_pnode;
创建树 lkt_pnode create_space();
//先序 int p_order(lkt_pnode T); //中序 //后序
#endif
创建树 lkt_pnode create_space() { ?? ?linktree_data_t ch; ?? ?scanf("%c", &ch); ?? ?if('$' == ch) ?? ??? ?return NULL; ?? ? ?? ?lkt_pnode p = (lkt_pnode)malloc(sizeof(lkt_node)); ?? ?if(NULL == p) ?? ?{ ?? ??? ?printf("malloc is default\n"); ?? ??? ?return NULL; ?? ?} ?? ?p->data = ch; ?? ?p->lchild = create_space(); ?? ?p->rchild = create_space(); ?? ? ?? ?return p; }
//先序 int p_order(lkt_pnode T) { ?? ?if(NULL == T) ?? ??? ?return 0; ?? ? ?? ?printf("%c->", T->data); ?? ?p_order(T->lchild); ?? ?p_order(T->rchild); ?? ? ?? ?return 0;?? ??? ? } //中序 //后序
int main() { ?? ?lkt_pnode T = create_space(); ?? ? ?? ? ?? ? ?? ? ?? ? ?? ?p_order(T); } ?
|