当前位置:主页 > 澳门威尼l斯人网址正文

澳门威尼l斯人网址_一起听吧网进入

03月18日作者:黑曼巴


用先根遍历的要领,来创建一个二叉树,当我们输入0的时刻,表示我们确当前节点没有左子树或者是右子树。

------------------同砚发过来的哀求赞助的源代码-------------

#include

#include

#define NULL 0

strUCt BTnode

{int d;

struct btnode *lchild;

struct btnode *rchild;

};

typedef struct btnode* bt;

void main()

{int b, k;

struct btnode *p,*t;

printf("input b:");

scanf("%d",&b);

if(b!=0)

{p=(struct btnode * )malloc(sizeof(struct btnode));

p->d=b;p->lchild=NULL;p->rchild=NULL;

if(k==0) t=p;

if(k==1) bt->lchild=p;

if(k==2) bt->rchild=p;

creatbt(p,1);

creatbt(p,2);

}

}

我想大年夜家必然和我一样看的一头雾水吧,部分函数根本就没有定义,怎么能够进行调用呢?

着实,在澳门威尼l斯人网址C说话中,基础上函数的功能都是我们自己去实现的,这个就要靠我们的基础功了。

-----------------------------下面是我更正的法度榜样源代码和附加的阐明部分-------------------------

#include

#include

#define NULL0/*若在Visual C++6.0中,可能要求其为空指针类型,即*/

#define DataTypeint/*#define NULL ((void *)0)*/

typedef struct BinTreeNode *PBinTreeNode;/*定义指向二叉树节点的指针类澳门威尼l斯人网址型*/

typedef PBinTreeNode *PBinTree;/*定义一个保存根节点的指针类型*/

struct BinTreeNode

{ DataType info;

PBinTreeNode llink;

PBinTreeNode rlink;

};

PBinTreeNode Create_BinTree(void); /*声明Create_BinTree()函数,后面的Create_BinTreeeNode()要调用到它,不然的话会报错*/

PBinTree Create_BinTreeRoot(void) /*/创建一个指向二叉树根节点的指针*/

{PBinTree pbtree;

pbtree澳门威尼l斯人网址=(PBinTree)malloc(sizeof(PBinTreeNode));

if(pbtree==NULL) pbtree=(PBinTree)realloc(pbtree,sizeof(PBinTreeNode));

*pbtree=Create_BinTree();/*为根节点赋值*/

return (pbtree);

}

PBinTreeNode Create_BinTreeNode(void) /*/创建一个二叉树的节点*/

{PBinTreeNode pbnode;

pbnode=(PBinTreeNode)malloc(sizeof(PBinTreeNode));

if(pbnode==NULL) pbnode=(PBinTreeNode)realloc(pbnode,sizeof(PBinTreeNode));

else pbnode->llink=pbnode->rlink=(PBinTreeNode)NULL;

return (pbnode);

}

PBinTreeNode Create_BinTree(void)

{PBinTreeNode pbnode ;

DataType i;

printf("Please input number to the binatree: 0 to exit: ");

scanf("%d", &i);

if(i==0) pbnode= NULL;

else

{

pbnode = (PBinTreeNode)malloc(sizeof(struct BinTreeNode));

if(pbnode == NULL)

{

printf("Out of space! ");

return pbnode ;

}

pbnode->info=i;

pbnode->llink=Create_BinTree();/*左递归调用Create_BinTree()*/

pbnode->rlink=Create_BinTree();/*右递归调用Create_BinTree()*/

}

return pbnode;

}

void outputTree(PBinTreeNode pbnode,int totalSpace) /*输出我们的二叉树*/

{int i;

if(pbnode!=NULL) {totalSpace+=5;/*右子树与根节点相距5个空格*/

outputTree(pbnode->rlink,totalSpace);

for(i=0;iinfo);

outputTree(pbnode->llink,totalSpace);/*递归调用左子树*/

}

}

int main()澳门威尼l斯人网址

{PBinTree pbtree;

int totalSpace = 0;

pbtree = Create_BinTreeRoot();/*Create_BinTreeRoot()函数中调用了Create_BinTree() */

outputTree(*pbtree,totalSpace);

return 0;

}

----------------------------------------法度榜样的调试部分----------澳门威尼l斯人网址---------------

假设我们输入的数值是: 12003 00

我们获得的输出结果为:

3

1

2

最近关注

热点内容

更多