1. 好久没写代码今天写老师给的PTA题目时写二叉树生成时调试了好久没弄出来,因为报错stack overflow,经过查询相关博客文章,在C++中,使用new或malloc动态分配内存时,系统将其分配到堆栈中,而vs编辑器中默认会给予其一定的空间大小,具体记不清了,默认好像超不过2M、具体可以自行查询,而众所周知,递归的风险便是空间使用量会随着递归深度的增加而不断增加,因为我递归函数中递归关系写错了(即递归模型),使得出现了stack overflow出现。一般小型的程序基本不会在算法没问题的情况下出现这种问题。自己对于树的理解太差了,需要继续加深。
2.在PTA一个题目中,输入为 int+char、而我定义的vector向量需要为int型,这就造成了之间转换,其实转化问题,在我们初学C时就已经掌握,题主好久没写忘了,竟然一直在用if条件构造,太笨了。。。
//方法一: '0'即代表0对应的ASCII码
char a,b
int aa, bb;
cin >> a;
aa = (int)a - '0';
cin >> b;
bb = (int)b - '0';
//方法一:直接减去ASCII对应的值
char a,b
int aa, bb;
cin >> a;
aa = (int)a - 48;
cin >> b;
bb = (int)b - 48;