基於二叉連結串列的二叉樹的遍歷
阿新 • • 發佈:2019-02-17
#include<bits/stdc++.h> using namespace std; typedef struct node { char data; struct node *lc,*rc; } node,*link; int i,flag; void creat(link &L) { char ch; scanf("%c",&ch); i++; if(i==1&&ch=='0') { flag=0; return ; } if(ch=='0') L=NULL; else { L=new node; L->data=ch; creat(L->lc); creat(L->rc); } } void preorder(link L) { if(L) { printf("%c",L->data); preorder(L->lc); preorder(L->rc); } } void inorder(link L) { if(L) { inorder(L->lc); printf("%c",L->data); inorder(L->rc); } } void laorder(link L) { if(L) { laorder(L->lc); laorder(L->rc); printf("%c",L->data); } } int main() { while(1) { i=0,flag=1; link L; creat(L); if(!flag) break; preorder(L); printf("\n"); inorder(L); printf("\n"); laorder(L); printf("\n"); getchar(); } return 0; }