《CSTree-孩子兄弟链表表示的树的深度》由会员分享,可在线阅读,更多相关《CSTree-孩子兄弟链表表示的树的深度(1页珍藏版)》请在金锄头文库上搜索。
1、CSTree-孩子兄弟链表表示的树的深度对以孩子-兄弟链表表示的树编写计算树的深度的算法#include #include typedef struct CSNode /孩子-兄弟节点的定义char data;struct CSNode *firstChild;struct CSNode *nextSibling; CSNode, *CSTree;void createCSTree(CSTree &tree) /创建孩子-兄弟二叉树char c = getchar();if(c = *) tree = NULL;else tree = (CSTree)malloc(sizeof(CSNode)
2、; tree-data = c;createCSTree(tree-firstChild);createCSTree(tree-nextSibling);int depthCSTree(CSTree T) /求孩子兄弟链表表示的树T的深度int maxd, d;CSTree p;if(!T) return 0; /空树else for(maxd=0,p=T-firstChild; p; p=p-nextSibling)if(d=depthCSTree(p) maxd) maxd = d; /子树的最大深度return maxd + 1; /depthCSTreevoid main() CSTree csTree;printf(输入孩子兄弟链表表示的树的结点:); createCSTree(csTree);printf(数的深度为:%dn, depthCSTree(csTree);