1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c语言实现层次遍历二叉树完整代码

c语言实现层次遍历二叉树完整代码

时间:2021-06-14 22:20:21

相关推荐

c语言实现层次遍历二叉树完整代码

//混用了一下c和c++(仅输入输出混用了一下,其他没有)#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;#define MaxSize 50//树typedef char DataType;typedef struct tnode {DataType data;struct tnode* lchild, * rchild;}BT, * BTT;// 函数声明BT* Create_(); // 先序创建二叉树void cen_bianli_(BT* T); //层次遍历二叉树void visit_(BT* p); //输出函数void visit2(BT* T); //中序遍历二叉树//main函数int main(){BT* T; T = Create_();//Create_(T); printf("中序遍历:");visit2(T);printf("层次遍历:");cen_bianli_(T);return 0;}//中序遍历 void visit2(BT* T){//printf("1");if (T != NULL){visit2(T->lchild);printf("%c ", T->data);//cout << T->data << " ";visit2(T->rchild);}}//先序创建二叉树 BT* Create_(){BT* t;char ch;cin >> ch;//scanf("%c", &ch);getchar();if (ch == '#'){t = NULL;}else{t = (BT*)malloc(sizeof(BT));t->data = ch;printf("请输入%c节点的lchild节点值:", t->data);t->lchild = Create_();printf("请输入%c节点的rchild节点值:", t->data);t->rchild = Create_();}return t;}//纯输出函数 void visit_(BT* p){printf("%c,", p->data);//cout << p->data << " " << endl;}//层次遍历 void cen_bianli_(BT* T) //二叉树层次遍历—核心代码{if (!T)printf("树空!");BTT Q[MaxSize];int front, rear;front = rear = 0;Q[rear++] = T;BT* p = NULL;while (front < rear){p = Q[front++];visit_(p);if (p->lchild)Q[rear++] = p->lchild;if (p->rchild)Q[rear++] = p->rchild;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。