关于读取数据的问题

error409 2019-06-30 10:25:46
#include<stdio.h> #include<stdlib.h> typedef struct _BinTree { char data; struct _BinTree *LeftNode; struct _BinTree *RigthNode; }BinTree; BinTree BuidTree() { BinTree p1 = { 'A',nullptr,nullptr }; BinTree p2 = { 'B',nullptr,nullptr }; BinTree p3 = { 'C',nullptr,nullptr }; BinTree p4 = { 'D',nullptr,nullptr }; BinTree p5 = { 'E',nullptr,nullptr }; BinTree p6 = { 'F',nullptr,nullptr }; BinTree p7 = { 'G',nullptr,nullptr }; BinTree p8 = { 'H',nullptr,nullptr }; p1.LeftNode = &p2; p1.RigthNode = &p6; p2.RigthNode = &p3; p3.LeftNode = &p4; p3.RigthNode = &p5; p6.RigthNode = &p7; p7.LeftNode = &p8; return p1; } void ForEach(BinTree *bintree) { if (nullptr == bintree->LeftNode && nullptr == bintree->RigthNode) return; //前序遍历 根左右 DLR printf("%c\n", bintree->data); ForEach(bintree->LeftNode); ForEach(bintree->RigthNode); } void main() { ForEach(&BuidTree()); printf("Call Sucessfully!!! } 大家看一看 为啥会在执行第二次递归的时候没有权限读取数据 在下这块儿基础不是很扎实,忘各位大佬指点迷津
...全文
29 1 收藏 1
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2019-07-01
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门! 递归函数关注以下几个因素 ·退出条件 ·参数有哪些 ·返回值是什么 ·局部变量有哪些 ·全局变量有哪些 ·何时输出 ·会不会导致堆栈溢出
回复
error409 2019-07-01
引用 1 楼 赵4老师的回复:
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门! 递归函数关注以下几个因素 ·退出条件 ·参数有哪些 ·返回值是什么 ·局部变量有哪些 ·全局变量有哪些 ·何时输出 ·会不会导致堆栈溢出
非常感谢非常感谢我去试试
回复
发帖
其它技术问题
创建于2007-09-28

3842

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2019-06-30 10:25
社区公告
暂无公告