Chinaunix首页 | 论坛 | 博客
  • 博客访问: 949377
  • 博文数量: 261
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 3420
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-24 12:10
个人简介

https://smart888.taobao.com/ 立观智能监控

文章分类

全部博文(261)

文章存档

2011年(1)

2010年(4)

2009年(256)

我的朋友

分类: C/C++

2009-03-10 22:32:21

typedef struct bitnode//树形结构

{
 int data;
 struct bitnode *lchild,*rchild;
}bitnode,*bitree;


int preordertraverse(bitree t)
//前序遍历

{
 if(t)
 {
  cout<<t->data<<" ";
  preordertraverse(t->lchild);
//遍历左子树

  preordertraverse(t->rchild);
//遍历右子树

 }
 return 1;
}


int inordertraverse(bitree t)
//中序遍历

{
 if(t)
 {
  inordertraverse(t->lchild);
//遍历左子树

  cout<<t->data<<" ";
  inordertraverse(t->rchild);
//遍历右子树

 }
 return 1;
}


int postordertraverse(bitree t)
//后序遍历

{
 if(t)
 {
  postordertraverse(t->lchild);
//遍历左子树

  postordertraverse(t->rchild);
//遍历右子树

  cout<<t->data<<" ";
 }
 return 1;
}


int inordertraverse2(bitree t)
//中序遍历二叉树,非递归

{
 sqstack s;
 bitree p;

 initstack(s);
 p=t;
 while(p||s.top!=s.base)
 {
  if(p)
//往左走到尽头

  {
   push(s,p);
   p=p->lchild;
  }
  else
  {
   pop(s,p);
//当前结点出队

   cout<<p->data<<" ";
   p=p->rchild;
//右孩子入队

  }
 }
 return 1;
}

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