void CreateBinTree(BiNode *bt) //1.按照先序遍历次序递建立二叉树。 { char ch; scanf_s("%c",&ch); getchar(); if (ch=='!') bt=NULL; else { bt=(BiNode *)malloc(sizeof(BiNode)); bt->data=ch; //生成根结点 CreateBinTree(bt->lchild); //构造左子树 CreateBinTree(bt->rchild); //构造右子树 } }
int CreateBinTree(BinTree *Tree) { char ch; scanf("%c",&ch); if(ch == '.') (*Tree) = NULL; else { if(!((*Tree) = (BinTree)malloc(sizeof(BinNode)))) exit(OVERFLOW); (*Tree)->data = ch; CreateBinTree(&((*Tree)->lchild)); CreateBinTree(&((*Tree)->rchild)); } return (OK); }/*CreateBiTree*/
NodeT *CreateBinTree(FILE *f) { NodeT *p; char *return_val; return_val=(char*)malloc(sizeof(char)); fscanf(f,"%s",return_val); if (strcmp(return_val,"*")==0) return NULL; else { p=createNode(return_val); p->left=CreateBinTree(f); p->right=CreateBinTree(f); } return p; }
int main() { FILE *f=fopen("input.txt","r"); NodeT *root=CreateBinTree(f); mirror(root); prettyPrint(root,0); fclose(f); return 0; }
int main() { FILE *f=fopen("input.txt","r"); NodeT *root=CreateBinTree(f); NodeL*firstFromList=getListfromTree(root); traverseList(firstFromList); root=getTreeFromList(firstFromList); prettyPrint(root,0); fclose(f); return 0; }
void main() { BinTree T=NULL; printf("BEGIN\n"); CreateBinTree(&T); printf("END\n"); printf("DEPTH\n"); printf("%d\n",depth(T)); printf("LEAF\n"); printf("%d\n",leaf(T)); }
void main() { BiNode *bt; bt=(BiNode *)malloc(sizeof(BiNode)); InitBinTree(bt); CreateBinTree(bt); preOrder(bt); printf("非递归先序遍历为:"); //Pre(bt); printf("\n"); printf("非递归中序遍历为:"); //In(bt); printf("\n"); printf("非递归后序遍历为:"); //Post(bt); printf("\n"); }