屈我峯糞?坿旗鷹泌和?
#include <conio.h> #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define OVERFLOW -2 typedef int status; typedef struct BiNode { char Data; struct BiNode* lChild; struct BiNode* rChild; }BiNode,*pBiNode; status CreateTree(BiNode** pTree); status PreOrderTraval(BiNode* pTree); status Visit(char Data); status Display(BiNode* pTree,int Level); status Clear(BiNode* pTree); BiNode *pRoot=NULL; main() { clrscr(); CreateTree(&pRoot); printf("\nPreOrder:"); PreOrderTraval(pRoot); printf("\n"); printf("\nInOrder:"); InOrderTraval(pRoot); printf("\n"); printf("\nPostOrder:"); PostOrderTraval(pRoot); printf("\n"); printf("\nShowLeaves:"); ShowLeaves(pRoot); printf("\n-----------------------\n"); printf("\n"); Display(pRoot,0); printf("\n"); printf("\nDeleting Tree:\n"); DelTree(pRoot); printf("BiTree Deleted."); getch(); } status CreateTree(BiNode** pTree) /*Input Example: abd##e##cf##g##*/ { char ch; scanf("%c",&ch); if(ch==‘#‘) { (*pTree)=NULL; } else { if(!((*pTree)=(BiNode*)malloc(sizeof(BiNode)))) { exit(OVERFLOW); } (*pTree)->Data=ch; CreateTree(&((*pTree)->lChild)); CreateTree(&((*pTree)->rChild)); } return OK; } status PreOrderTraval(BiNode* pTree) { if(pTree) { if(Visit(pTree->Data)) { if(PreOrderTraval(pTree->lChild)) { if(PreOrderTraval(pTree->rChild)) { return OK; } } } return ERROR; } else { return OK; } } status InOrderTraval(BiNode* pTree) { if(pTree) { if(InOrderTraval(pTree->lChild)) { if(Visit(pTree->Data)) { if(InOrderTraval(pTree->rChild)) { return OK; } } return ERROR; } return ERROR; } else { return OK; } } status PostOrderTraval(BiNode* pTree) { if(pTree) { if(PostOrderTraval(pTree->lChild)) { if(PostOrderTraval(pTree->rChild)) { if(Visit(pTree->Data)) { return OK; } return ERROR; } } return ERROR; } else { return OK; } } status Visit(char Data) { printf("%c",Data); return OK; } status Display(BiNode* pTree,int Level) { int i; if(pTree==NULL) return; Display(pTree->lChild,Level+1); for(i=0;i<Level-1;i++) { printf(" "); } if(Level>=1) { printf("--"); } printf("%c\n",pTree->
|