数据结构——二叉树的基本操作【先序创建与(先中后)序遍历】(C语言)

    科技2024-06-25  63

    二叉树的先序创建与(先序,中序,后序)遍历 示例:(A)1,(B)2,0,©3,0,0,(D)4,0,0 #include<stdio.h> #include<stdlib.h> #define MAXSIZE 10010 #define ElemType int typedef struct BTNode{ ElemType data; BTNode *lchild,*rchild; }*BTree; //先序建树 BTree CreateTree(){ ElemType ch; printf("输入结点元素值:"); scanf("%d",&ch); if(ch == 0) return NULL; else{ BTree tree=(BTree)malloc(sizeof(BTree)); tree->data=ch; printf("%d 结点左子树\n",ch); tree->lchild=CreateTree(); printf("%d 结点右子树\n",ch); tree->rchild=CreateTree(); return tree; } } //先序遍历 void PreOrderTravel(BTree tree){ if(tree == NULL) return; printf("%d ",tree->data); PreOrderTravel(tree->lchild); PreOrderTravel(tree->rchild); } //中序遍历 void MedOrderTravel(BTree tree){ if(tree == NULL) return; MedOrderTravel(tree->lchild); printf("%d ",tree->data); MedOrderTravel(tree->rchild); } //后序遍历 void AftOrderTravel(BTree tree){ if(tree == NULL) return; AftOrderTravel(tree->lchild); AftOrderTravel(tree->rchild); printf("%d ",tree->data); } int main(){ printf("二叉树的建立\n"); BTree tree; tree=CreateTree(); printf("二叉树的先序遍历\n"); PreOrderTravel(tree); printf("\n二叉树的中序遍历\n"); MedOrderTravel(tree); printf("\n二叉树的后序遍历\n"); AftOrderTravel(tree); return 0; }

    Processed: 0.012, SQL: 8