//层次遍历建立二叉树
#include<iostream>
#include"fun.h"
//typedef char ElemType;
//typedef struct BiNode {
// ElemType data;
// struct BiNode* lchild, * rchild;
//}BiTNode, * BiTree;
//typedef struct Node {
// BiTree p;
// struct Node* next;
//}QNode, * Queue;
using namespace std;
bool creatBiTree_Lever()
{
BiTree T = NULL;
BiTree Tnew;
Queue Head = NULL, rear = NULL, tempHead=NULL, qnew;
ElemType e;
cout << "Please Input data" << endl;
while (1)
{
cin.get(e);
if (e == '\n') break;
Tnew = new BiTNode;
Tnew->data = e;
Tnew->lchild = NULL;
Tnew->rchild = NULL;
qnew = new QNode;
qnew->p = Tnew;
qnew->next = NULL;
if (NULL == T)
{
T = Tnew;
Head = rear = tempHead = qnew;
continue;
}
if(NULL != T)
{
rear->next = qnew;
rear = qnew;
}
if (tempHead->p->lchild == NULL)
{
tempHead->p->lchild = Tnew;
continue;
}
if (tempHead->p->rchild == NULL)
{
tempHead->p->rchild = Tnew;
tempHead = tempHead->next;
}
}
return true;
}
int main()
{
//abcdefghi
cout << creatBiTree_Lever() << endl;;
}
层次遍历建立二叉树
最新推荐文章于 2023-09-20 20:05:30 发布