資料結構複習(完全二叉樹判定)

2021-06-06 06:33:50 字數 842 閱讀 2059

編寫演算法判別給定二叉樹是否為完全二叉樹。

要求實現下列函式:

status completebitree(bitree bt);

/* judge if the binary tree whose root is bt */

/* is a complete tree.                       */

二叉鍊錶型別定義:

typedef struct bitnode bitnode, *bitree;

可用佇列型別queue的相關定義:

typedef bitree qelemtype; // 設佇列元素為二叉樹的指標型別

status initqueue(queue &q);

status enqueue(queue &q, qelemtype e);

status dequeue(queue &q, qelemtype &e);

status gethead(queue q, qelemtype &e);

status queueempty(queue q);

status completebitree(bitree bt)

/* judge if the binary tree whose root is bt */

/*  is a complete tree.                      */

else

flag=1;

}while(!queueempty(q))

if(flag==0)

return false;

return true;   

}

資料結構 完全二叉樹

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!完全二叉樹是一種效率很高的資料結構,堆就是一種完全二叉樹,所以效率極高。像十分常用的排序演算法 dijkstra演算法 prim演算法等都要用堆才能優化 幾乎每次都要考到的二叉排序樹的效率也要借助平衡性來提高,而平衡性基於完全二叉樹。完全二叉樹定義...

資料結構二叉樹複習

1 節點的定義 template class treenode treenode elem e,treenode l null,treenode r null treenode bool isleaf 2 二叉樹 鍊錶法 由上往下建樹 template class tree tree void in...

完全二叉樹的判定

完全二叉樹的判定 對二叉樹進行層次遍歷,在遍歷過程中對每乙個結點進行檢查 1 如果當前結點沒有右子樹,則剩下的全部結點必須既沒有左子樹,又沒有右子樹 2 如果當前結點有右子樹,則它必須也有左子樹.include includetypedef struct bitnode bitree typedef...