先序遍歷建立並輸出二叉樹(遞迴演算法)
阿新 • • 發佈:2019-02-08
//程式碼如下: #include<stdio.h> #include<stdlib.h> typedef struct Node //二叉樹結構定義 { char data; struct Node *lchild; struct Node *rchild; }Bitree; void CreateBiTree(Bitree *&t) //先序遍歷建立二叉樹 { char s; scanf("%c",&s); if(s=='#') t=NULL; else { t=(Bitree *)malloc(sizeof(Node)); t->data=s; CreateBiTree(t->lchild); CreateBiTree(t->rchild); } } void Output(Bitree *t) //先序遍歷輸出二叉樹 { if(t!=NULL) { printf("%c ",t->data); Output(t->lchild); Output(t->rchild); } } int main() { Bitree *root; printf("請以先序遍歷依次為二叉樹賦值:"); CreateBiTree(root); printf("以先序遍歷輸出二叉樹:"); Output(root); printf("\n"); return 0; }