《二叉树的前序中序后序层次遍历》由会员分享,可在线阅读,更多相关《二叉树的前序中序后序层次遍历(4页珍藏版)》请在金锄头文库上搜索。
1、二叉树的前序中序后序层次遍历程序:/ TREE.cpp : Defines the entry point for the console application. /#include stdafx.h#include#includetypedef struct bitnodechar data;struct bitnode *lchild,*rchild;bitnode,*bitree;typedef struct qnodebitree data;struct qnode *next;qnode;typedef structqnode * front;qnode * rear;linkqu
2、eue;int initqueue(linkqueue &q)q.front=q.rear=(qnode*)malloc(sizeof(qnode);if(!q.front) exit(OVERFLOW);q.front-next=NULL;return 1;int enqueue(linkqueue &q,bitree e)qnode *p;p=(qnode*)malloc(sizeof(qnode);if(!p) exit(OVERFLOW);p-data=e;p-next=NULL;q.rear-next=p;q.rear=p;return 1;int outqueue(linkqueu
3、e & q,bitree &e) qnode *p;if(q.front=q.rear) return 0;p=q.front-next;e=p-data;q.front-next=p-next;if(q.rear=p)q.rear=q.front;return 1;int createbitree(bitree &t)char ch;scanf(%c”,&ch);if(ch=.)t=NULL;elseif(!(t=(bitnode*)malloc(sizeof(bitnode) exit(OVERFLOW);t-data=ch;createbitree(t-lchild);createbit
4、ree(t-rchild);return 1;int visit(char e)printf(%c,e);return 1;int preordertraverse(bitree t,int (*visit)(char e)if(t)if(visit(t-data)if(preordertraverse(t-lchild,visit)if(preordertraverse(t-rchild,visit) return 1;return 0;else return 1;int inordertraverse(bitree t,int (*visit)(char e)if(t)if(inorder
5、traverse(t-lchild,visit)if(visit(t-data) if(inordertraverse(t-rchild,visit) return 1; return 0;else return 1;int postordertraverse(bitree t,int (*visit)(char e)if(t)if(postordertraverse(t-lchild,visit)if(postordertraverse(t-rchild,visit)if(visit(t-data)return 1;return 0;else return 1;void levelorder
6、traverse(bitree t)linkqueue q;bitree e;initqueue(q);enqueue(q,t);while(outqueue(q,e)if(e)visit(e-data);enqueue(q,e-lchild);enqueue(q,e-rchild);int main(int argc, char* argv)bitree t;printf(-输入字符:);createbitree(t);printf(-输出先序遍历:);preordertraverse(t, visit);printf(n);printf(-输出中序遍历:, inordertraverse(t,visit);printf(n);printf(-输出后序遍历:); postordertraverse(t,visit);printf(n);printf(-输出层序遍历:);levelordertraverse(t);printf(n);return 0;运行结果;.-.rg. habcfpghcbf agihsancfbghraabrcfghto continueD:MTREEDebugTREE.exe