//先序遍历二叉树 void TraverseBiTree(tree *T) { if (T == NULL) return; printf("%d ", T->data); TraverseBiTree(T->Lch); TraverseBiTree(T->Rch); }
int main(int argc, char const *argv[]) { int n, i, L, R; tree T[16]; scanf("%d", &n); for (i = 0; i < n; i++) { T[i].data = i + 1; scanf("%d%d", &L, &R); if (L != 0) { T[i].Lch = &T[L - 1]; } else { T[i].Lch = NULL; } if (R != 0) { T[i].Rch = &T[R - 1]; } else { T[i].Rch = NULL; } } TraverseBiTree(&T[0]); printf("\n"); InOrderBiTree(&T[0]); printf("\n"); PostOrderBiTree(&T[0]); printf("\n"); return 0; }
int main() { BiTree T; printf("创建二叉链表,请按先序连续输入树元素\n"); CreatBiTree(&T); printf("PRE--Order\n"); PreOrderTraverse(T); printf("\n"); printf("IN--Order\n"); InOrderTraverse(T); printf("\n"); printf("POST--Order\n"); PostOrderTraverse(T); printf("\n"); printf("NoPre--Order\n"); NoPreOrderTraverse(T); printf("\n"); printf("NoIN--Order\n"); NoInOrderTraverse(T); printf("\n"); printf("NoPOST--Order\n"); NoPostOrderTraverse(T); printf("\n"); printf("Traverse\n"); TraverseBiTree(T); BiTreeDeep(T); NoBiTreeDeep(T); printf("方法2创建树\n"); BiTree t; t=CreatBiTree2(t); PreOrderTraverse(t); }