二叉树遍历

来源:互联网 发布:别斯兰人质事件知乎 编辑:程序博客网 时间:2024/06/05 23:39
#include<stdio.h>#define maxsize 50struct bittree{int data;bittree *lchild, *rchild;};//使用递归的先序,中序以及后序遍历void visit(bittree *t){printf("%d\n", t->data);}void preorder(bittree *t){if (t != NULL){visit(t);preorder(t->lchild);preorder(t->rchild);}}void inorder(bittree *t){if (t!=NULL){inorder(t->lchild);visit(t);inorder(t->rchild);}}void postorder(bittree *t){if (t != NULL){postorder(t->lchild);postorder(t->rchild);visit(t);}}void inorder2(bittree *t){initstack(s);bittree *p = t;while (p || !isempty(s)){if (p){push(s, p);p = p->lchild;}else{pop(s, p);visit(p);p = p->rchild;}}}//层次遍历void leveorder(bittree *t){initqueue(q);bittree *p;enqueue(q, t);while (!isempty(q)){dequeu(q, p);}visit(p);if (p->lchild!==NULL){enqueue(q, p->lchild);}if (p->rchild != NULL){enqueue(q, p->rchild);}}


0 0