|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我刚学到二叉树的部分,自己用迭代写了个遍历的程序,很奇怪的是我 开始执行(不调试)就会告诉我 发生了未处理的win32异常,但是如果我用单步调试的话就会一切正常的把程序跑完,求帮助;
一下是代码
#include <stdio.h>
#include <malloc.h>
typedef char ElemType;
typedef struct BTree
{
ElemType data;
struct BTree *lchild;
struct BTree *rchild;
}BNode,*BTree;
#define LEN sizeof(BTree)
void TravelTree(BTree L);
int main(void)
{
BTree A;
A = (BTree)malloc(LEN);
BTree B;
B= (BTree)malloc(LEN);
BTree C;
C = (BTree)malloc(LEN);
BTree D;
D = (BTree)malloc(LEN);
BTree E;
E = (BTree)malloc(LEN);
BTree F;
F = (BTree)malloc(LEN);
BTree G;
G = (BTree)malloc(LEN);
A->data = 'A';
B->data = 'B';
C->data = 'C';
D->data = 'D';
E->data = 'E';
F->data = 'F';
G->data = 'G';
A->lchild = B;
A->rchild = C;
B->lchild = D;
B->rchild = E;
C->lchild = F;
C->rchild = G;
D->lchild = D->rchild = E->lchild = E->rchild = F->lchild = F->rchild = G->lchild = G->rchild = NULL;
printf("%c", C->rchild->data);
printf("\n\n");
TravelTree(A);
return 0;
}
void TravelTree(BTree L)
{
printf("%c", L->data);
BTree p = L->lchild;
BTree q = L->rchild;
if (p != NULL)
{
TravelTree(p);
}
if (q != NULL)
{
TravelTree(q);
}
return;
}
|
|