⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bi-tree.cpp

📁 本程序包括三个功能:按前序遍历的方式创建二叉树、前序遍历显示二叉树、完全二叉树的判断。其中
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>

typedef struct BiTNode {
	char data;
	struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

int flag =0;

/*
//采用前序遍历的形式创建二叉树,空格表示空树
void create(BiTree T) 
{
	char ch;	
	scanf("%c", &ch);
	
	if(ch=='#') T=NULL;
	else {
		T=(BiTree)malloc(sizeof(BiTNode));
		T->data=ch;
		printf("%c\n", T->data);
		
		create(T->lchild);
		create(T->rchild);
	}
	return;
}
*/

//采用前序遍历的形式创建二叉树,空格表示空树
BiTree create() 
{
	BiTree T;
	char ch;	
	scanf("%c", &ch);
	
	if(ch!='#')
	{
		T=(BiTree)malloc(sizeof(BiTNode));
		T->data=ch;
		
		T->lchild=create();
		T->rchild=create();
	}
	else  T=NULL;
	return T;
}

//前序遍历二叉树,并判断是否为完全二叉树
//若是,返回0;否,返回1
int traverse(BiTree T)
{
	if(T) {
		if(!T->lchild && T->rchild) flag=1;
		printf("%c ", T->data);
		traverse(T->lchild);
		traverse(T->rchild);
	}
	else printf("# ");
	return flag;
}

void main()
{
	BiTree T;
	
	T=create();
	int ctree=traverse(T);
	printf("\n");
	if(ctree) printf("非完全二叉树!\n");
	else printf("完全二叉树!\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -