Chinaunix首页 | 论坛 | 博客
  • 博客访问: 606557
  • 博文数量: 172
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 1252
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-29 22:26
文章分类

全部博文(172)

文章存档

2011年(6)

2010年(7)

2009年(159)

我的朋友

分类: LINUX

2009-11-10 23:02:05

前序遍历(递归方式)

void traverse(link h, void (*visit)(link))
{
  if (h == NULL) return;

  (*visit)(h);
  traverse(h->l, visit);
  traverse(h->r, visit);
}


前序遍历(非递归方式)

void traverse(link h, void (*visit)(link))
{
  STACKinit(max); STACKpush(h);

  while (!STACKempty())
    {
      (*visit)(h = STACKpop());
      if (h->r != NULL) STACKpush(h->r);
      if (h->l != NULL) STACKpush(h->l);
    }
}


阅读(1752) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~