Advertisement

二叉树的中序遍历非递归实现及链栈实现压栈与出栈操作

阅读量:
复制代码
    //算法5.2 中序遍历的非递归算法
    #include <iostream>
    using namespace std;
    
    //二叉树的二叉链表存储表示
    typedef struct BiNode
    {
    char data;                      //结点数据域
    struct BiNode *lchild, *rchild; //左右孩子指针
    } BiTNode, *BiTree;
    
    //链栈的定义
    typedef struct StackNode
    {
    BiTNode data;
    struct StackNode *next;
    } StackNode, *LinkStack;
    
    //用算法5.3 先序遍历的顺序建立二叉链表
    void CreateBiTree(BiTree &T)
    {
    //按先序次序输入二叉树中结点的值(一个字符),创建二叉链表表示的二叉树T
    char ch;
    cin >> ch;
    if (ch == '#')
        T = NULL; //递归结束,建空树
    else
    {
        T = new BiTNode;

全部评论 (0)

还没有任何评论哟~