Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112535
  • 博文数量: 23
  • 博客积分: 975
  • 博客等级: 准尉
  • 技术积分: 262
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-19 00:54
文章分类
文章存档

2011年(2)

2010年(3)

2008年(18)

我的朋友

分类:

2008-07-19 02:19:39


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;
}

阅读(1030) | 评论(1) | 转发(0) |
0

上一篇:多重引导程序(MBR)

下一篇:顺序循环队列

给主人留下些什么吧!~~

chinaunix网友2008-07-23 13:09:06

很好