//链式存储统计二叉树结点个数
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#define Max 10
typedef struct treenode {
char data;
struct treenode* lchild, * rchild;
}treenode, * tree;
void creatTree(tree& t) {
char ch;
ch = getchar();
if (ch == '#') t = NULL;
else {
t = (treenode*)malloc(sizeof(treenode));
t->data = ch;
t->lchild = NULL;
t->rchild = NULL;
creatTree(t->lchild);
creatTree(t->rchild);
}
}
int re_level(tree t) {
struct treenode* Queue[Max];
int front = -1, rear = -1;
if (t == NULL)return 0;
int i = 1;
treenode* p;
Queue[++rear] = t;
while (front<rear) {
p = Queue[++front];
if (p->lchild) {
Queue[++rear] = p->lchild;
i++;
}
if (p->rchild) {
Queue[++rear] = p->rchild;
i++;
}
}
return i;
}
int main() {
tree t;
creatTree(t);
printf("%d",re_level(t));
return 0;
}
//ABD##E##C##
05044链式存储统计二叉树结点个数
于 2022-12-04 21:44:43 首次发布