求助 用C和数据结构的问题
对于vc中关于C语言和C++语言的支持情况我不怎么了解。同样是下面的代码,用.c格式保存,就编译不过,用.cpp格式就完全可以。为什么??
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
#define MAX 200
typedef struct node //二叉树结点类型
{
char data;
struct node *lchild;
struct node *rchild;
}Btree;
void Creatree(Btree *b, char str[])//用非递归法创建二叉树(广义表形式)
{
char ch;
int j = 0;
Btree *stack[MAXSIZE];
Btree *p = NULL;
int top = -1;
int k;
ch = str[j];
while (ch != '\0')
{
switch(ch)
{
case '(': top++;
stack[top] = p;
k = 1;
break; //为左结点
case ')': top--; //退栈
break;
case ',': k = 2; //右结点
break;
default : p = (Btree *)malloc(sizeof(Btree));
p->data = ch;
p->lchild = p->rchild = NULL;
if (b == NULL) //根结点
{
b = p;
}
else
{
switch(k)
{
case 1: stack[top]->lchild = p;
break;
case 2: stack[top]->rchild = p;
}
}
}
j++;
ch = str[j];
}
}
void main()
{
Btree *b;
b = NULL;
char a[MAX];
char *str = a;
printf("输入二叉树字符: \n"); //广义表形式
scanf("%s", str);
Creatree(b, str);
}