二叉树的遍历与创建
来源:互联网 发布:java.nio jar 下载 编辑:程序博客网 时间:2024/05/19 09:11
二叉树遍历:
递归实现:
void BT_Order(BTreeNode *t)
{
if(NULL == t)return ;
//先序处理插入cout<<t->data<<' ';
BT_Order(t->lchild);
//中序处理插入cout<<t->data<<' ';
BT_Order(t->rchild);
//后序处理插入cout<<t->data<<' ';
}
非递归实现:(后序遍历???)
void BT_Order(pTreeT root)
{
stack<treeT *> s;
while ( root) || !s.empty())
{
if (root)
{
//若为先序,则插入visit(root);
s.push(root);
root = root->left;
}
else
{
root = s.top();
//若为中序,插入visit(root);
s.pop();
root = root->right;
}
}
}
层次遍历:
void BT_LevelOrder(pTreeT root)
{
queue<treeT *> q;
treeT *treePtr;
assert( NULL != root );
q.push(root);
while (!q.empty())
{
treePtr = q.front();
q.pop();
visit(treePtr);
if (NULL != treePtr->left)
{
q.push(treePtr->left);
}
if (NULL != treePtr->right)
{
q.push(treePtr->right);
}
}
}
创建二叉树
void creat_BT(tree &t)
{
char ch;
cin>>ch;
if(ch == '0')
{
t=NULL;
}
else
{
t = new binary_tree;
if(!t) exit(0); //如果没成功申请空间 则退出
t->data=ch;
creat_tree(t->lchild);
creat_tree(t->rchild);
}
}
- 二叉树的创建与遍历
- 二叉树的创建与遍历
- 二叉树的创建与遍历(递归)
- 二叉树的创建与遍历
- 二叉树的创建与遍历
- 二叉树的创建与遍历
- 二叉树的创建与遍历
- 二叉树的遍历与创建
- 二叉树的创建与遍历
- 二叉树的创建与层次遍历
- 二叉树的创建与递归遍历
- 二叉树的遍历与创建
- 二叉树的创建与遍历
- 二叉树的创建与遍历
- 非二叉树的创建与遍历
- 二叉树的创建与遍历
- 二叉树的遍历与创建
- 二叉树的创建与遍历1
- A计划+BFS
- Visual C++编程技巧---程序管理和控制
- java7-异常
- 移植SYSZUXpinyin到tiny6410
- 关于Java中的paint,repaint,update三个方法的关系
- 二叉树的遍历与创建
- Scicily 1308 Dependencies among Job(2003年广东省赛题)
- 关于Java中的paint,repaint,update三个方法的关系
- rectangle of camera
- 大数据时代
- Holedox Moving 贪吃蛇 BFS 状态压缩
- 问题六十: 用筛法求10000内的素数。
- 黑马程序员_String
- android移植(三)-一些问题与解决方法