-
#include <iostream>
-
#include <string>
-
#include <vector>
-
#include <list>
-
#include <deque>
-
#include <malloc.h>
-
using namespace std;
-
struct BinaryTreeNode
-
{
-
int data;
-
struct BinaryTreeNode * left;
-
struct BinaryTreeNode * right;
-
};
-
typedef struct BinaryTreeNode * BTLink;
-
int CreatBinaryTree(BTLink *T)
-
{
-
int a;
-
BTLink tmp;
-
scanf("%d",&a);
-
if(a==0)
-
{
-
-
*T=0;
-
return 1;
-
}
-
(*T)=(BTLink)malloc(sizeof(struct BinaryTreeNode));
-
(*T)->data=a;
-
//*T=tmp;
-
CreatBinaryTree(&((*T)->left));
-
CreatBinaryTree(&(*T)->right);
-
return 0;
-
}
-
int PrintBinaryTree(BTLink T)
-
{
-
-
if(T==0)
-
return 1;
-
printf("%d",T->data);
-
PrintBinaryTree(T->left);
-
PrintBinaryTree(T->right);
-
return 0;
-
}
-
int main()
-
{
-
deque<int> b;
-
deque<BTLink>qdlink;
-
//std::deque<BTLink> qBTLink;
-
BTLink BT =(BTLink)malloc(sizeof(struct BinaryTreeNode));;
-
CreatBinaryTree(&BT);
-
qdlink.push_back(BT);
-
while(qdlink.size())
-
{
-
BTLink tmp=qdlink.front();
-
qdlink.pop_front();
-
-
if(tmp==0)
-
continue;
-
printf("%d",tmp->data);
-
qdlink.push_back(tmp->left);
-
qdlink.push_back(tmp->right);
-
-
}
-
return 0;
-
// PrintBinaryTree(BT);
-
-
}
先建立一个二叉树,打印二叉树的时候用一个队列,没打印一个队列前面节点,把打印的节点的左右节点插入队列尾部,循环进行,直到打印完成。
阅读(743) | 评论(0) | 转发(0) |