anyone interested to discuss about the last question in ACM this year? <Tunnels
登录 | 论坛导航 -> 华新鲜事 -> 求学狮城 | 本帖共有 20 楼,当前显示第 19 楼 : 从楼主开始阅读 : 本帖树形列表 : 返回上一页
作者:房间 (等级:2 - 初出茅庐,发帖:21) 发表:2007-10-16 01:02:38  19楼 
如果child有到parent的ref的话。Let struct treeNode{ int id; treeNode *left; treeNode *right; treeNode *par; }; DFS(treeNode *root){ treeNode *cur=root; while (cur!=NULL){ printf("%d, ", cur->id); if (cur->left!=NULL){ cur=cur->left; } else if (cur->right!=NULL) cur=cur->right; else{ treeNode *par=cur->par; while (par!=NULL){ if (par->left==cur && par->right!=NULL){ cur=par->right; break; } cur=par; par=par->par; } if (par==NULL) cur=NULL; } } } 其实就是depth first, 应该是O(3n)=O(n)吧。
gr8.
When I was asking for the answer, I didn't presume there is a parent link in each node, though. However, I guess the parent link is necessary.
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表

本帖共有 20 楼,当前显示第 19 楼,本文还有 N-1 层楼,要不你试试看:点击此处阅读更多 >>



请登录后回复:帐号   密码