[題目分析]兩棵空二叉樹或僅有根結點的二叉樹相似對非空二叉樹可判左右子樹是否相似采用遞歸算法
int Similar(BiTree pq) //判斷二叉樹p和q是否相似
{if(p==null && q==null) return ();
else if(!p && q || p && !q) return ();
else return(Similar(p>lchildq>lchild) && Similar(p>rchildq>rchild))
}//結束Similar
[題目分析] 根據樹的雙親表示法創建樹的孩子兄弟鏈表表示法首先給出根結點在雙親表示法中的下標但找根結點的子女要遍歷雙親表示法的整個靜態鏈表根結點的第一個子女是孩子兄弟表示法中的孩子其它子女結點作兄弟對雙親表示法中的任一結點均遞歸建立其孩子兄弟鏈表子樹
CSTree PtreeToCstree (PTree ptint root)
//本算法將雙親表示法的樹pt轉為孩子兄弟鏈表表示的樹root是根結點在雙親表示法中的下標
{CSTree child sibling; int firstchild;
CSTree cst=(CSTree)malloc(sizeof(CSNode)); //申請結點空間
cst>data=ptnodes[root]data; cst>firstchild=null; cst>nextsibling=null;//根結點
firstchild=;
for(i=;i<=ptn;i++) //查找root的孩子
if(ptnodes[i]parent==root)
{child=PtreetoCstree(pti);
if(firstchild) {cst>firstchild=child; firstchild=;sibling=cst>firstchild;}
else //child不是root的第一個孩子作兄弟處理
{sibling>nextsibling=child; sibling=sibling>nextsibling;}
}//if
}//end for
return cst; }//結束PtreetoCstree
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/sjjg/201311/23708.html