diff --git a/_04.树/02二叉树链式结构实现_BiTreeLink.c b/_04.树/02二叉树链式结构实现_BiTreeLink.c deleted file mode 100644 index b89ef2b..0000000 --- a/_04.树/02二叉树链式结构实现_BiTreeLink.c +++ /dev/null @@ -1,213 +0,0 @@ -#include "string.h" -#include "stdio.h" -#include "stdlib.h" -#include "io.h" -#include "math.h" -#include "time.h" - -#define OK 1 -#define ERROR 0 -#define TRUE 1 -#define FALSE 0 -#define OVERFLOW -1 -#define MAXSIZE 100 /* 洢ռʼ */ - -typedef int Status; /* StatusǺ,ֵǺ״̬룬OK */ - -/* ڹ********************************** */ -int index=1; -typedef char String[24]; /* 0ŵԪŴij */ -String str; - -Status StrAssign(String T,char *chars) -{ - int i; - if(strlen(chars)>MAXSIZE) - return ERROR; - else - { - T[0]=strlen(chars); - for(i=1;i<=T[0];i++) - T[i]=*(chars+i-1); - return OK; - } -} -/* ************************************************ */ - -typedef char TElemType; -TElemType Nil=' '; /* ַԿոΪ */ - -Status visit(TElemType e) -{ - printf("%c ",e); - return OK; -} - -typedef struct BiTNode /* ṹ */ -{ - TElemType data; /* */ - struct BiTNode *lchild,*rchild; /* Һָ */ -}BiTNode,*BiTree; - - -/* նT */ -Status InitBiTree(BiTree *T) -{ - *T=NULL; - return OK; -} - -/* ʼ: Tڡ: ٶT */ -void DestroyBiTree(BiTree *T) -{ - if(*T) - { - if((*T)->lchild) /* */ - DestroyBiTree(&(*T)->lchild); /* */ - if((*T)->rchild) /* Һ */ - DestroyBiTree(&(*T)->rchild); /* Һ */ - free(*T); /* ͷŸ */ - *T=NULL; /* ָ븳0 */ - } -} - -#define ClearBiTree DestroyBiTree - -/* ǰнֵһַ */ -/* #ʾʾT */ -void CreateBiTree(BiTree *T) -{ - TElemType ch; - - /* scanf("%c",&ch); */ - ch=str[index++]; - - if(ch=='#') - *T=NULL; - else - { - *T=(BiTree)malloc(sizeof(BiTNode)); - if(!*T) - exit(OVERFLOW); - (*T)->data=ch; /* ɸ */ - CreateBiTree(&(*T)->lchild); /* */ - CreateBiTree(&(*T)->rchild); /* */ - } - } - -/* ʼ: T */ -/* : TΪն,򷵻TRUE,FALSE */ -Status BiTreeEmpty(BiTree T) -{ - if(T) - return FALSE; - else - return TRUE; -} - - - -/* ʼ: Tڡ: T */ -int BiTreeDepth(BiTree T) -{ - int i,j; - if(!T) - return 0; - if(T->lchild) - i=BiTreeDepth(T->lchild); - else - i=0; - if(T->rchild) - j=BiTreeDepth(T->rchild); - else - j=0; - return i>j?i+1:j+1; -} - -/* ʼ: Tڡ: Tĸ */ -TElemType Root(BiTree T) -{ - if(BiTreeEmpty(T)) - return Nil; - else - return T->data; -} - -/* ʼ: TڣpָTij */ -/* : pֵָ */ -TElemType Value(BiTree p) -{ - return p->data; -} - -/* pָ㸳ֵΪvalue */ -void Assign(BiTree p,TElemType value) -{ - p->data=value; -} - -/* ʼ: T */ -/* : ǰݹT */ -void PreOrderTraverse(BiTree T) -{ - if(T==NULL) - return; - printf("%c",T->data);/* ʾݣԸΪԽ */ - PreOrderTraverse(T->lchild); /* */ - PreOrderTraverse(T->rchild); /* */ -} - -/* ʼ: T */ -/* : ݹT */ -void InOrderTraverse(BiTree T) -{ - if(T==NULL) - return; - InOrderTraverse(T->lchild); /* */ - printf("%c",T->data);/* ʾݣԸΪԽ */ - InOrderTraverse(T->rchild); /* */ -} - -/* ʼ: T */ -/* : ݹT */ -void PostOrderTraverse(BiTree T) -{ - if(T==NULL) - return; - PostOrderTraverse(T->lchild); /* Ⱥ */ - PostOrderTraverse(T->rchild); /* ٺ */ - printf("%c",T->data);/* ʾݣԸΪԽ */ -} - - -int main() -{ - int i; - BiTree T; - TElemType e1; - InitBiTree(&T); - - - StrAssign(str,"ABDH#K###E##CFI###G#J##"); - - CreateBiTree(&T); - - printf("ն,շ%d(1: 0:) =%d\n",BiTreeEmpty(T),BiTreeDepth(T)); - e1=Root(T); - printf("ĸΪ: %c\n",e1); - - printf("\nǰ:"); - PreOrderTraverse(T); - printf("\n:"); - InOrderTraverse(T); - printf("\n:"); - PostOrderTraverse(T); - ClearBiTree(&T); - printf("\n,շ%d(1: 0:) =%d\n",BiTreeEmpty(T),BiTreeDepth(T)); - i=Root(T); - if(!i) - printf("գ޸\n"); - - return 0; -} - diff --git a/_04.树/_b.二叉树链式结构.c b/_04.树/_b.二叉树链式结构.c index f22707f..8888c9e 100644 --- a/_04.树/_b.二叉树链式结构.c +++ b/_04.树/_b.二叉树链式结构.c @@ -2,7 +2,7 @@ * @Author: Xu Bai * @Date: 2019-07-13 22:24:04 * @LastEditors: Xu Bai - * @LastEditTime: 2019-07-19 22:42:49 + * @LastEditTime: 2019-07-19 22:49:14 */ #include "string.h" #include "stdio.h" @@ -65,17 +65,17 @@ Status InitBiTree(BiTree *T) return OK; } -void DestroyTree(BiTree *T) +void DestroyBiTree(BiTree *T) { if (*T) { if ((*T)->lchild) { - DestroyTree(&(*T)->lchild); + DestroyBiTree(&(*T)->lchild); } if ((*T)->rchild) { - DestroyTree(&(*T)->rchild); + DestroyBiTree(&(*T)->rchild); } free(*T); *T = NULL; diff --git a/a.out b/a.out deleted file mode 100644 index 6be7823..0000000 Binary files a/a.out and /dev/null differ