CSTree.h #ifndef CSTREE_H_H #define OK 1 #define ERROR 0 #define MAX(x,y) (x) > (y) ? (x) : (y) typedef void* ElemType; typedef struct CSNode { ElemType data; struct CSNode *first_child, *next_sibling; }*CSTree; int init_CSTree(CSTree); int make_node(CSTree*); int create_CSTree(CSTree*); int preOrder_visit(CSTree); int postOrder_visit(CSTree); int depth_CSTree(CSTree); int marge_tree(int, CSTree, ...); #endif CSTree.cpp #include<stdio.h> #include<stdlib.h> #include<stdarg.h> #include"CSTree.h" #include"SqQueue.h" /* ** 孩子兄弟法建立森林或普通树的存储结构 ** 用二叉链表来保持其结构 ** 森林的先序遍历等于二叉树的先序遍历 ** 森林的后序遍历等于二叉树的中序遍历 ** 森林的中序