|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 SmithDimon 于 2020-3-22 15:39 编辑
照着小甲鱼视频代码打的 可是运行结果并没有输出数据和其所在层数 求助大佬指点指点
#include<stdio.h>
#include<stdlib.h>
typedef struct Bitnode{ //定义了一个二叉树的节点
char date;
struct Bitnode *lchild,*rchild;
}Bitreenode;
void creatBitree(Bitreenode* p) //创建二叉树
{
char c;
scanf("%c",&c);
if(c == ' ')
{
p = NULL;
}
else
{
p=(Bitreenode*)malloc(sizeof(Bitreenode));
p->date = c;
creatBitree(p->lchild);
creatBitree(p->rchild);
}
}
void visit(char c,int level) //输出此元素在整个树的第几层
{
printf("数据%c在第%d层\n",c,level);
}
void PreorderTraveserse(Bitreenode *p,int level) //前序遍历二叉树
{
if(p)
{
visit(p->date,level);
PreorderTraveserse(p->lchild,level+1);
PreorderTraveserse(p->rchild,level+1);
}
}
int main()
{
Bitreenode p;
int level=1;
creatBitree(&p);
PreorderTraveserse(&p,level);
return 0;
}
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct Bitnode{ //定义了一个二叉树的节点
- char data;
- struct Bitnode *lchild,*rchild;
- }Bitreenode;
- void creatBitree(Bitreenode **p) //创建二叉树
- {
- char c;
- scanf("%c", &c);
- if(c == ' ')
- {
- *p = NULL;
- }
- else
- {
- *p = malloc(sizeof(Bitreenode));
- (*p)->data = c;
- creatBitree(&(*p)->lchild);
- creatBitree(&(*p)->rchild);
- }
- }
- void visit(char c, int level) //输出此元素在整个树的第几层
- {
- printf("数据%c在第%d层\n", c, level);
- }
- void PreorderTraveserse(Bitreenode *p, int level) //前序遍历二叉树
- {
- if(p)
- {
- visit(p->data, level);
- PreorderTraveserse(p->lchild, level + 1);
- PreorderTraveserse(p->rchild, level + 1);
- }
- }
- int main(void)
- {
- Bitreenode *p;
- creatBitree(&p);
- PreorderTraveserse(p, 1);
- return 0;
- }
复制代码
|
|