数据结构 课程设计报告
    目:  二叉树的先序遍历、中序遍历、后序遍历的递归    法。                               
学生姓名:              *  *  *                     
    号:              ***************           
专业班级:          计算机科学与技术专业   
                          ***               
同组姓名:                *****           
指导教师:            *****老师               
设计时间:      年下学期第       
指导老师意见:
    评定成绩:            签名:          日期:
       
一、课题简介    3
二、系统项目设计. . . . . . . . . . . . . . .3
三、系统实现    3
1.二叉树的建立    4
2.先序遍历    4
    a.递归算法    7
    b.非递归算法    7
3.中序遍历    6
    a.递归算法    7
    b.非递归算法    7
4.后序遍历    6
    a.递归算法    7
    b.非递归算法    7
5.主菜单程序    4
5.子菜单程序    4
四、系统测试    18
1.二叉树的建立    4
2.先序遍历    4
    a.递归算法    7
    b.非递归算法    7
2.中序遍历    6
    a.递归算法    7
    b.非递归算法    7
3.后序遍历    6
    a.递归算法    7
  b.非递归算法    7
4.主菜单程序    4
5.子菜单程序    4
五、小结    22
六、参考文献................................23
一. 课题简介:
通过这个课题设计主要掌握三种遍历方法,包括前序遍历,中序遍历和后序遍历,以及后续遍历的非递归算法。
二. 项目设计:
  1 系统功能模块图
                      2:系统存盘功能流程图
                  三  系统实现
系统核心代码
1.二叉树的建立:
二叉树的遍历算法需要先建立二叉树,二叉树的建立需要建立栈和数组
栈和数组的建立:
typedef struct node                      /*结点定义*/
{  char  data;
struct node * lchild, * rchild;
} BinTreeNode;
typedef struct{  //栈的定义
    BinTreeNode * ptr;
    int tag;
}StackNode;
二叉树的建立:
BinTreeNode * CreateBinTree (BinTreeNode * Tree )
/*,按先序序列建立二叉树,输入并建立一棵二叉树Tree*/
{
    char  c;
    scanf("%c",&c);
    if(c=='&')  Tree = NULL;
    else
    {
        Tree=(BinTreeNode * )malloc(sizeof(BinTreeNode));
        Tree->data=c;
        Tree->lchild= CreateBinTree(Tree->lchild);
        Tree->rchild= CreateBinTree(Tree->rchild);     
    }
   
    return(Tree);
}
2.先序遍历
a.递归算法
先序中序后序遍历二叉树先序遍历的递归算法:
/*二叉树的先序遍历*/
void PreOrder ( BinTreeNode *T )
{
    if ( T != NULL )
    {
        printf("%c",T->data);
        PreOrder ( T->lchild );

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。