资源简介
建立一棵二叉树,试编程实现二叉树的如下基本操作:
1. 按先序序列构造一棵二叉链表表示的二叉树T;
2. 对这棵二叉树进行遍历:先序、中序、后序以及层次遍历,分别输出结点的遍历序列;
3. 求二叉树的深度/结点数目/叶结点数目;
4. 将二叉树每个结点的左右子树交换位置。
代码片段和文件信息
#include
#include
#define exit 0
using namespace std;
typedef struct BiTNode{
char data;
struct BiTNode *lchild*rchild;//左右孩子指针
}BiTNode*BiTree;
void CreateBiTree(BiTree &T)
{
//按先序次序输入二叉树中结点的值(一个字符),空格字符表示空树
//构造二叉链表表示的二叉树
char ch;
cin>>ch;
if(ch==‘#‘)T=NULL;
else
{
T=new BiTNode;
if(!T)exit(1);
T->data=ch; //生成根结点
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void PreOrderTraverse(BiTree T)
{//先序遍历二叉树
if(T!=NULL) {
cout<data;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
}
void InOrderTraverse(BiTree T)
{//中序遍历二叉树
if(T!=NULL)
{
InOrderTraverse(T->lchild);
cout<data;
InOrderTraverse(T->rchild);
}
}
void PostOrderTraverse(BiTree T
- 上一篇:C++面向对象高级编程代码资源侯捷
- 下一篇:MFC 五子棋 VS2013 美化UI
评论
共有 条评论