樹的映象(反轉)

2021-05-28 10:22:02 字數 1124 閱讀 8190

#include typedef struct bctreenode //

*bctree,bctree;

int reversebctree(bctree t)

bctree pr,prnext,prprev;

pr=t->left_child; //head of list

prprev=null;

prnext=pr->right_brother;

while(prnext)

pr->right_brother=prprev;

t->left_child=pr; //after reverse t ->left point to head of list ;

reversebctree(t->left_child);

reversebctree(t->right_brother);

return 0;

}int createbctree(bctree *t)

t=(bctree)malloc(sizeof(struct bctreenode));

t->value=data;

t->left_child=null;

t->right_brother=null;

*t=t;

createbctree(&(t->left_child));

createbctree(&(t->right_brother));

return 0;

}int printbctree(bctree t)

int main(int argc, char *argv)

printf("createbctree over\n");

printbctree(t);

printf("\nprintbctree over\n");

reversebctree(t);

printf("\nreversebctreeover\n");

printbctree(t);

printf("\nprintbctree over\n");

return 0;

}

C 反轉二叉樹 映象

對於樹這種結構,我們經常採用的策略是使用遞迴的方式,在這裡,我們也使用遞迴來解決這個問題。遞迴演算法步驟 1 對二叉樹的左子樹進行翻轉 2 對二叉樹的右子樹進行翻轉 3 將左右子樹的根節點進行交換 不用考慮原二叉樹的根節點,因為原二叉樹的根節點在翻轉前後沒有改變 核心 如下 binarytreeno...

python實現對二叉樹進行映象反轉

題目描述 二叉樹的映象就是二叉樹對稱的二叉樹就是交換每乙個非葉子結點的左子樹指標和右子樹指標 如下圖所示,請 寫 出能實現該功能的 注意 請勿對該樹做任何假設,它不 一定是平衡樹 也不 一定有序。分析與解答 從上圖可以看出,要實現二叉樹的映象反轉,只需交換二叉樹中所有結點的左右孩子即 可。由於對所有...

學習筆記之樹的映象

前段時間去一家公司參加面試,碰到了乙個問題,講的是樹的映象問題,當時莫名其妙,後面想想應該是跟平面鏡成像原理似的,回來研究後得出如下結論。問題描述 輸入一顆二元查詢樹,將該樹轉換為它的映象,即在轉換後的二元查詢樹中,左子樹的結點都大於右子樹的結點。用遞迴和迴圈兩種方法完成樹的映象轉換。例如輸入 8 ...