69,368
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
typedef int datatype;//假如把这里写成typedef *int datatype;怎么就不能编译通过了?
void vist(int &);
int main()
{
datatype a;
printf("请输入一个数a:\n");
scanf("%d",&a);
printf("a为%d\n",a);
vist(a);
return 0;
}
void vist(datatype &b)//b是a的引用
{
printf("b为%d\n",b);
}
#include<stdio.h>
......
typedef struct BiTNode {
int data;
BiTNode *lchild,*rchild;
}BiTNode,*BiTree; //这里BiTree表示的是指针类型的变量
void CreateBiTree(BiTree &T)//这里T是Tree的引用,而BiTree表示的是指针类型的变量
//如果把前面的“*BiTree”改为“BiTree”,可以这样理解吗?即理解为:void CreateBiTree(BiTree *&T),
//我感觉这里和第一个程序的原理是一样的,所以第一个程序改了以后也应该是对的,可是不知道我理解的对不对
{
......
T=(BiTree)malloc(sizeof(BiTNode));
......
}
void main()
{
BiTree Tree;
InitBiTree(Tree);
......
}
//完整代码为:
#include<malloc.h>
#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode
{
int data;
BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T)
{
int number;
scanf("%d",&number);
if(number==0)
T=NULL;
else
{
T=(BiTree)malloc(sizeof(BiTNode));
if(!T)
exit(-1);
T->data=number;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void PreOrderTraverse(BiTree T)
{
if(T)
{
printf("%d\t",T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
}
void main()
{
BiTree Tree;
printf("按先序次序输入二叉树中结点的值,输入0表示节点为空,输入范例:1 2 0 0 3 0 0\n");
CreateBiTree(Tree);
printf("先序递归遍历二叉树:\n");
PreOrderTraverse(Tree);
}
#include <stdio.h>
typedef int datatype;//假如把这里写成typedef int *datatype;怎么就不能编译通过了?
void vist(int &);//---->void vist(datatype &);
int main()