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

📄 btree.cpp

📁 二叉树的建立
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 20
typedef int ElemType;
typedef struct BNode
{
	ElemType data;
	struct BNode *lch,*rch;
}BNode;
typedef struct
{BNode *a[MAXSIZE];
int top;
}sqstack;
typedef struct
{BNode *elem[MAXSIZE];
int front,rear;
}squeue;
BNode *creat_bt0();
BNode *creat_bt1();
void inorder(BNode *p);
BNode *t;
int z,i,j,k,e;
main()
{do{printf("\n\n");
printf("\n\n           0.建立二叉树(方法0)    ");
printf("\n\n           1.建立二叉树(方法1)    ");
printf("\n\n           2.中序递归遍历二叉树    ");
printf("\n\n           3.结束程序运行");
printf("\n===============================");  
printf("\n      请输入您的选择(0,1,2,3):");scanf("%d",&k);
switch(k)
{
case 0:{printf("\n    s输入(0 0)结束:");
	t=creat_bt0();
	inorder(t);
	   }break;
case 1:{printf("\n按照先序的次序输入数据,对空孩子也要输入0");
	t=creat_bt1();
	inorder(t);
	   }break;
case 2:{printf("\n中序递归遍历 inorder:");inorder(t);
	   }break;
case 3:exit(0);
}
printf("\n---------");
}while(k>=0&&k<5);
printf("\n                再见!");scanf("%d",&z);
return 0;
}
BNode *creat_bt0(){
	BNode *t,*p,*v[20];
	printf("\n i data=?");scanf("%d%d",&i,&e);
	while(i!=0&&e!=0)
	{p=(BNode *)malloc(sizeof(BNode));
	p->data=e;p->lch=NULL;p->rch=NULL;
	v[i]=p;
	if(i==1)t=p;
	else {
		j=i/2;
		if(i%2==0)v[j]->lch=p;else v[j]->rch=p;
	}
	printf("\n i data=?");scanf("%d%d",&i,&e);
	}
	return(t);
}
BNode *creat_bt1(){
	BNode *t;
	printf("\n data=");scanf("%d",&e);
	if(e==0)t=NULL;
	else{t=(BNode *)malloc(sizeof(BNode));
	t->data=e;
	t->lch=creat_bt1();
	t->rch=creat_bt1();
	}
	return(t);
}
void inorder(BNode *p)
{if(p){printf("%3d",p->data);
inorder(p->lch);
inorder(p->rch);
}
}

⌨️ 快捷键说明

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