
数据结构,麻烦各位帮忙解答下
#include<stdio.h>#include<stdlib.h>#defineQueueMaxSize20#defineStackMaxSize10typedefi...
#include<stdio.h>
#include<stdlib.h>
#define QueueMaxSize 20
#define StackMaxSize 10
typedef int ElemType;
struct BTreeNode
{ElemType data;
struct BTreeNode* left;
struct BTreeNode* right;};
void Insert(struct BTreeNode** BST,ElemType x)
{
struct BTreeNode* p;
struct BTreeNOde* t=*BST,*parent=NULL;
while(t!=NULL)
{parent=t;
if(x<t->data) t=t->left;
else t=t->right;}
p=malloc(sizeof(struct BTreeNode));
p->data=x;
p->left=p->right=NULL;
if(parent==NULL) *BST=p;
else if(x<parent->data)
parent->left=p;
else parent->right=p;
}
void CreateBSTree(struct BTreeNode** BST,ElemType a[],int n)
{
int i;
*BST=NULL;
for(i=0;i<n;i++)
Insert(BST,a[i]);
}
void PrintBTree(struct BTreeNode* BT)
{
if(BT!=NULL)
{printf("%d",BT->data);
if(BT->left!=NULL || BT->right!=NULL)
{printf("(");
PrintBTree(BT->left);
if(BT->right!=NULL) printf(",");
PrintBTree(BT->right);}}
}
void main()
{int x,*px;
ElemType a[10]={45,23,29,52,35,70,12,89,34,33};
struct BTreeNode* bst=NULL;
CreateBSTree(&bst,a,10);
printf("建立的二叉排序树的广义表形式为:\n");
PrintBTree(bst);
}
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(15) : warning C4133: 'initializing' : incompatible types - from 'struct BTreeNode *' to 'struct BTreeNOde *'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(18) : error C2037: left of 'data' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(18) : error C2037: left of 'left' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(19) : error C2037: left of 'right' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(24) : error C2037: left of 'data' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(25) : error C2037: left of 'left' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(26) : error C2037: left of 'right' specifies undefined struct/union 'BTreeNOde'
Error executing cl.exe.
五.obj - 6 error(s), 1 warning(s)
在insert函数中出现若干这样的错误,为什么啊 展开
#include<stdlib.h>
#define QueueMaxSize 20
#define StackMaxSize 10
typedef int ElemType;
struct BTreeNode
{ElemType data;
struct BTreeNode* left;
struct BTreeNode* right;};
void Insert(struct BTreeNode** BST,ElemType x)
{
struct BTreeNode* p;
struct BTreeNOde* t=*BST,*parent=NULL;
while(t!=NULL)
{parent=t;
if(x<t->data) t=t->left;
else t=t->right;}
p=malloc(sizeof(struct BTreeNode));
p->data=x;
p->left=p->right=NULL;
if(parent==NULL) *BST=p;
else if(x<parent->data)
parent->left=p;
else parent->right=p;
}
void CreateBSTree(struct BTreeNode** BST,ElemType a[],int n)
{
int i;
*BST=NULL;
for(i=0;i<n;i++)
Insert(BST,a[i]);
}
void PrintBTree(struct BTreeNode* BT)
{
if(BT!=NULL)
{printf("%d",BT->data);
if(BT->left!=NULL || BT->right!=NULL)
{printf("(");
PrintBTree(BT->left);
if(BT->right!=NULL) printf(",");
PrintBTree(BT->right);}}
}
void main()
{int x,*px;
ElemType a[10]={45,23,29,52,35,70,12,89,34,33};
struct BTreeNode* bst=NULL;
CreateBSTree(&bst,a,10);
printf("建立的二叉排序树的广义表形式为:\n");
PrintBTree(bst);
}
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(15) : warning C4133: 'initializing' : incompatible types - from 'struct BTreeNode *' to 'struct BTreeNOde *'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(18) : error C2037: left of 'data' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(18) : error C2037: left of 'left' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(19) : error C2037: left of 'right' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(24) : error C2037: left of 'data' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(25) : error C2037: left of 'left' specifies undefined struct/union 'BTreeNOde'
C:\Documents and Settings\Administrator\桌面\新建文件夹\五.c(26) : error C2037: left of 'right' specifies undefined struct/union 'BTreeNOde'
Error executing cl.exe.
五.obj - 6 error(s), 1 warning(s)
在insert函数中出现若干这样的错误,为什么啊 展开
1个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
#define QueueMaxSize 20
#define StackMaxSize 10
typedef int ElemType;
struct BTreeNode
{ElemType data;
struct BTreeNode* left;
struct BTreeNode* right;};
void Insert(struct BTreeNode** BST,ElemType x)
{
struct BTreeNode* p;
// struct BTreeNOde* t=*BST,*parent=NULL; BTreeNOde名字写错了
struct BTreeNode* t=*BST,*parent=NULL;
while(t!=NULL)
{parent=t;
if(x<t->data) t=t->left;
else t=t->right;}
p= (struct BTreeNode*)malloc(sizeof(struct BTreeNode));//指针强转
p->data=x;
p->left=p->right=NULL;
if(parent==NULL) *BST=p;
else if(x<parent->data)
parent->left=p;
else parent->right=p;
}
void CreateBSTree(struct BTreeNode** BST,ElemType a[],int n)
{
int i;
*BST=NULL;
for(i=0;i<n;i++)
Insert(BST,a[i]);
}
void PrintBTree(struct BTreeNode* BT)
{
if(BT!=NULL)
{printf("%d",BT->data);
if(BT->left!=NULL || BT->right!=NULL)
{printf("(");
PrintBTree(BT->left);
if(BT->right!=NULL) printf(",");
PrintBTree(BT->right);}}
}
void main()
{//int x,*px; 这两个变量没用,警告
ElemType a[10]={45,23,29,52,35,70,12,89,34,33};
struct BTreeNode* bst=NULL;
CreateBSTree(&bst,a,10);
printf("建立的二叉排序树的广义表形式为:\n");
PrintBTree(bst);
}
#include<stdlib.h>
#define QueueMaxSize 20
#define StackMaxSize 10
typedef int ElemType;
struct BTreeNode
{ElemType data;
struct BTreeNode* left;
struct BTreeNode* right;};
void Insert(struct BTreeNode** BST,ElemType x)
{
struct BTreeNode* p;
// struct BTreeNOde* t=*BST,*parent=NULL; BTreeNOde名字写错了
struct BTreeNode* t=*BST,*parent=NULL;
while(t!=NULL)
{parent=t;
if(x<t->data) t=t->left;
else t=t->right;}
p= (struct BTreeNode*)malloc(sizeof(struct BTreeNode));//指针强转
p->data=x;
p->left=p->right=NULL;
if(parent==NULL) *BST=p;
else if(x<parent->data)
parent->left=p;
else parent->right=p;
}
void CreateBSTree(struct BTreeNode** BST,ElemType a[],int n)
{
int i;
*BST=NULL;
for(i=0;i<n;i++)
Insert(BST,a[i]);
}
void PrintBTree(struct BTreeNode* BT)
{
if(BT!=NULL)
{printf("%d",BT->data);
if(BT->left!=NULL || BT->right!=NULL)
{printf("(");
PrintBTree(BT->left);
if(BT->right!=NULL) printf(",");
PrintBTree(BT->right);}}
}
void main()
{//int x,*px; 这两个变量没用,警告
ElemType a[10]={45,23,29,52,35,70,12,89,34,33};
struct BTreeNode* bst=NULL;
CreateBSTree(&bst,a,10);
printf("建立的二叉排序树的广义表形式为:\n");
PrintBTree(bst);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询