|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- #include<stdlib.h>
- #include<stdarg.h>
- #include<iostream>
- #include<iterator>
- using namespace std;
- #define TElemType char
- #define Status int
- #define SUCCESS 1
- #define ERROR -1
- #define OVERFLOW -2
- //二叉树的二叉链表存储表示
- typedef struct BitNode
- {
- TElemType data;
- struct BitNode* lchild, * rchild;
- }BiTNode, * BiTree;
- //构造空二叉树
- Status InitBiTree(BiTree& T) {
- T = NULL;
- return 1;
- }
- /*
- 销毁二叉树T
- */
- Status DestroyBiTree(BiTree& T) {
- if ((T)->lchild)
- DestroyBiTree(T->lchild);
- if ((T)->rchild)
- DestroyBiTree(T->rchild);
- free(T);
- T = NULL;
- return 1;
- }
- /*
- * 先序队列创建二叉树
- */
- Status CreateBiTree(BiTree& S) {
- TElemType ch2;
- scanf("%c", &ch2);
- if (ch2 == ' ')
- S = NULL;
- else
- {
- S = (BiTree)malloc(sizeof(BiTNode));
- if (!S)
- exit(OVERFLOW);
- S->data = ch2;
- CreateBiTree(S->lchild);
- CreateBiTree(S->rchild);
- }
- return SUCCESS;
- }
- int main(void) {
- BiTree biTree = NULL, insertBiTree = NULL;
- int initResult = InitBiTree(biTree);
- printf("initResult=%d\n", initResult);
- int createBiTree = CreateBiTree(biTree);
- printf("createBiTree=%d\n", createBiTree);
- int insertCreateResult = CreateBiTree(insertBiTree);
- printf("insertCreateBiTree=%d\n", insertCreateResult);
- }
复制代码
测试数据:ABC##DE#G##F###
#为空格
第一棵树可以正常创建
第二棵树按回车无反应
|
|