zoukankan      html  css  js  c++  java
  • 6-11 Level-order Traversal(25 分)

    Write a routine to list out the nodes of a binary tree in "level-order". List the root, then nodes at depth 1, followed by nodes at depth 2, and so on. You must do this in linear time.

    Format of functions:

    void Level_order ( Tree T, void (*visit)(Tree ThisNode) );
    

    where void (*visit)(Tree ThisNode) is a function that handles ThisNode being visited by Level_order, and Tree is defined as the following:

    typedef struct TreeNode *Tree;
    struct TreeNode {
        ElementType Element;
        Tree  Left;
        Tree  Right;
    };
    

    Sample program of judge:

    #include <stdio.h>
    #include <stdlib.h>
    
    #define MaxTree 10 /* maximum number of nodes in a tree */
    typedef int ElementType;
    
    typedef struct TreeNode *Tree;
    struct TreeNode {
        ElementType Element;
        Tree  Left;
        Tree  Right;
    };
    
    Tree BuildTree(); /* details omitted */
    void PrintNode( Tree NodePtr )
    {
       printf(" %d", NodePtr->Element);
    }
    
    void Level_order ( Tree T, void (*visit)(Tree ThisNode) );
    
    int main()
    {
        Tree T = BuildTree();
        printf("Level-order:");
        Level_order(T, PrintNode);
        return 0;
    }
    
    /* Your function will be put here */
    

    Sample Output (for the tree shown in the figure):

    Level-order: 3 5 6 1 8 10 9
    

    代码:
    void Level_order ( Tree T, void (*visit)(Tree ThisNode) )
    {
        Tree s[1000];
        int head = 0,tail = 0;
        if(T)s[tail ++] = T;
        while(head < tail)
        {
            if(s[head] -> Left)s[tail ++] = s[head] -> Left;
            if(s[head] -> Right)s[tail ++] = s[head] -> Right;
            (*visit)(s[head ++]);
        }
    }
  • 相关阅读:
    东方国信 - 软件开发人员面试问卷(ver1.001.002)
    Traceback (most recent call last): File "setup.py", line 22, in <module> execfile(join(CURDIR, 'src', 'SSHLibrary', 'version.py')) NameError: name 'execfile' is not defined
    python学习笔记一
    A strange lift
    A strange lift
    Tempter of the Bone
    Tempter of the Bone
    Rescue
    Rescue
    Red and Black
  • 原文地址:https://www.cnblogs.com/8023spz/p/7701238.html
Copyright © 2011-2022 走看看