回覆列表
  • 1 # 何以笙丶丶

    設計一個演算法層序遍歷二叉樹(同一層從左到右訪問)。思想:用一個佇列儲存被訪問的當前節點的左右孩子以實現層序遍歷。

    void HierarchyBiTree(BiTree Root){

    LinkQueue *Q; // 儲存當前節點的左右孩子的佇列

    InitQueue(Q); // 初始化佇列

    if (Root == NULL) return ; //樹為空則返回

    BiNode *p = Root; // 臨時儲存樹根Root到指標p中

    Visit(p->data); // 訪問根節點

    if (p->lchild) EnQueue(Q, p->lchild); // 若存在左孩子,左孩子進佇列

    if (p->rchild) EnQueue(Q, p->rchild); // 若存在右孩子,右孩子進佇列

    while (!QueueEmpty(Q)) // 若佇列不空,則層序遍歷 { DeQueue(Q, p); // 出佇列

    Visit(p->data);// 訪問當前節點

    if (p->lchild) EnQueue(Q, p->lchild); // 若存在左孩子,左孩子進佇列

    if (p->rchild) EnQueue(Q, p->rchild); // 若存在右孩子,右孩子進佇列

    }

    DestroyQueue(Q); // 釋放佇列空間

    return ;

    這個已經很詳細了!你一定可以看懂的!加油啊!

  • 中秋節和大豐收的關聯?
  • 有什麼好聽的生日歌,中文版的?