二叉树的链接表示

来源:互联网 发布:淘宝网道闸哪家好 编辑:程序博客网 时间:2024/05/22 16:22
 #include<stdlib.h>
#include<stdio.h>

typedef int DataType;

struct BinTreeNode;                   
typedef  struct BinTreeNode *PBinTreeNode;

struct BinTreeNode {
    DataType  info;                       
    PBinTreeNode llink;              
    PBinTreeNode rlink;                    
};

typedef  struct BinTreeNode  *BinTree;

typedef  BinTree  *PBinTree;

PBinTreeNode root_btree(PBinTree t) {
    return *t;
}

PBinTreeNode leftChild_btree (PBinTreeNode p) {
    return p->llink;
}

PBinTreeNode rightChild_btree (PBinTreeNode p) {
    return p->rlink;
}

PBinTreeNode createRest_BTree() {
    PBinTreeNode  pbnode;
    char ch;
    scanf("%c", &ch);
    if(ch == '@') pbnode = NULL;
    else {
        pbnode = (PBinTreeNode )malloc(sizeof(struct BinTreeNode));
        if( pbnode == NULL )         {
            printf("Out of space!/n");
            return pbnode;
        }
        pbnode->info = ch;
        pbnode->llink = createRest_BTree(); 
        pbnode->rlink = createRest_BTree(); 
    }
    return pbnode;
}

PBinTree  create_BTree( void ) {
    PBinTree pbtree;
    pbtree = (PBinTree)malloc(sizeof(BinTree));
    if (pbtree != NULL)
        *pbtree = createRest_BTree( );  
    return pbtree;
}


int main(){
return 0;
}