赞
踩
该文件用于创建一颗链表二叉树,测试创建二叉树,先序、中序、后序三种遍历方式
创建二叉树代码如下:
- #define _CRT_SECURE_NO_WARNINGS
- #define TYPE char
- struct biTree {
- TYPE data;
- struct biTree *lchild;
- struct biTree *rchild;
- };
- #include <stdio.h>
- #include <stdlib.h>
-
- biTree *create(biTree *T) {//这里我们采用先序创建一颗二叉树
- char data;
- printf("请输入当前节点值:data=");
- scanf("%c",&data);
- getchar();
- if (data != '#') {
- T = (biTree *)malloc(sizeof(biTree));
- T->data = data;
- T->lchild = NULL;
- T->rchild = NULL;
- T->lchild = create(T->lchild);
- T->rchild = create(T->rchild);
- }
- return T;
- }
- //中序递归遍历
- void inOrder(biTree *T) {
- if (T!=NULL) {
- inOrder(T->lchild);
- printf("%c ",T->data);
- inOrder(T->rchild);
- }
- }
- //先序递归遍历
- void preOrder(biTree *T) {
- if (T != NULL) {
- printf("%c ", T->data);
- preOrder(T->lchild);
- preOrder(T->rchild);
- }
- }
- //后序递归遍历
- void postOrder(biTree *T) {
- if (T != NULL) {
- postOrder(T->lchild);
- postOrder(T->rchild);
- printf("%c ", T->data);
- }
- }
测试代码如下:
- struct biTree {
- char data;
- struct biTree *lchild;
- struct biTree *rchild;
- };
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
- struct biTree *T = (struct biTree*)malloc(sizeof(struct biTree));
- biTree *create(biTree*);
- void preOrder(biTree*);
- void inOrder(biTree*);
- void postOrder(biTree*);
-
- T=create(T);
- preOrder(T);
- printf("\n");
- inOrder(T);
- printf("\n");
- postOrder(T);
-
- return 0;
- }
努力是为了站在万人中央成为别人的光。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。