实验五二叉树的遍历及应用实验报告    二叉树的常见操作
【背景知识】二叉树的存储、建立、遍历及其应用。
【目的要求】
1.掌握二叉树的存储实现。
2.掌握二叉树的遍历思想。
3.掌握二叉树的常见算法的程序实现。
【实验内容】
1.输入字符序列,建立二叉链表。
2.中序遍历二叉树:递归算法。
算法如下:
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int status;
typedef struct BiNode
{
    char Data;
    struct BiNode* lChild;
    struct BiNode* rChild;
}BiNode,*pBiNode;
status CreateTree(BiNode** pTree);
status InOrderTraval(BiNode* pTree);
status Visit(char Data);
status CreateTree(BiNode** pTree)
{
    char ch;
    scanf("%c",&ch);
    if(ch=='#')
    {
        (*pTree)=NULL;
    }
    else
    {
        if(!((*pTree)=(BiNode*)malloc(sizeof(BiNode))))
        {
            exit(OVERFLOW);
        }
        (*pTree)->Data=ch;
        CreateTree(&((*pTree)->lChild));
        CreateTree(&((*pTree)->rChild));
    }
return OK;
}
status InOrderTraval(BiNode* pTree)
{
    if(pTree)
    {
        if(InOrderTraval(pTree->lChild))
        {
            if(Visit(pTree->Data))
            {
                if(InOrderTraval(pTree->rChild))
                {
                    return OK;
                }
            }
            return ERROR;
        }
        return ERROR;
    }
    else
    {
        return OK;
    }
}

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