#include#include typedef struct treenode{ char data; struct treenode *lchild,*rchild; }treenode,*tree; //ABD##E##C## void create(tree &t); int findtwo(tree t); int main(){ tree T; //stack s; create(T); int a = findtwo(T); printf("%d",a); return 0; } int findtwo(tree t){ int i = 0; if(t){ if(t->lchild && t->rchild){ i++; printf("%c ",t->data); } i = i + findtwo(t->lchild); i = i + findtwo(t->rchild); } return i; } void create(tree &t){ char c; c = getchar(); if(c == '#') t = NULL; else{ t = (treenode*)malloc(sizeof(treenode)); t->data = c; t->lchild = NULL; t->rchild = NULL; create(t->lchild); create(t->rchild); } }
注:树的建立参考了B站up 吸血小金鱼



