百科问答小站 logo
百科问答小站 font logo



花一晚上也无法理解非递归遍历二叉树,我该继续学下去吗? 第1页

  

user avatar   CommanderYCJiangS117 网友的相关建议: 
      

主流的编程语言是基于栈实现递归的,你可以先试试从这个角度想想


user avatar   frmf 网友的相关建议: 
      

你这属于死磕。死磕的资本须源于自信。

如果我碰到这种情况,我会这么想:如果连我都不懂,那其他同学肯定也不懂。不急慢慢来。

很明显你没有这样的自信,更多地像是一种脆弱经不起打击的表现。

成年人学习编程有两大常见的误区,1是只看书不动手,2是什么都要追求“理解”。抱着这两种心态的人前赴后继,同样的话说多少遍也没有用。

我们每个人都是从小婴儿长大的。想想小婴儿是怎么学习说话的。是从“模仿”开始的。如果每个词每句话都要追求”理解“,那就永远都学不会讲话。

当然,婴儿没有意识,不知道追求理解。但是成年人有意识,学什么都要先理解,只可惜这有时候反而会成为学习的障碍。

对于初学编程的人来说,无论年龄多大、智商多高,在编程语言相关的知识面前,其实依然是婴儿。放低身段,用鹦鹉学舌的姿势,不“理解”别强求,只要能够依葫芦画瓢地去解题、考试,就够了。

至于“理解”,交给时间。

公众号「树屋编程」,长期分享编程知识,欢迎关注


user avatar   cxpm 网友的相关建议: 
      

我的解决办法是形象化思维和循序渐进 ,尽量把抽象思维可视化。

1、拿几张大白纸出来,横过来放,一张主力其他备用,同时准备铅笔橡皮。

大白纸左边画一棵三个节点的最简单树,右边画一个堆栈。

比如先根遍历 ,正在访问的节点名写在树下面,访问过的节点打勾 ;右边的堆栈用铅笔写好放刚刚入站的节点名;在节点出栈的时候,你就用橡皮把它擦掉。

这个就是过你脑子的逐帧动画,一步一步,绝不含糊。

2、把树换成教材上中等复杂的难度的树, 比如搞个十几个节点,自己再走一遍,保证你的脑子更清楚。白纸不值钱,写的不开心,可以把它撕掉,发泄一下怒气。

3、看懂代码,争取不看书把代码打一遍。自己调试语法和语义错,最后再跟书上核对,用打字来加深自己的代码印象。

4、脑子彻底清楚以后,在集成环境里打开单步调试,一般f8可以逐语句执行。执行的时候交叉对照你的逐帧动画,加变量监视,加断点,走一步,就停下来看看变脸和栈的状态,不要太直观。

这个我称为曾国藩式的学习法,遇到困难结硬寨打呆仗,用细分法把问题搞定。




  

相关话题

  java程序员的技术更新那么快,为什么每个技术还要读源码,会使用不就好了吗?技术那么多也学不完啊? 
  GB2312及其扩展标准和Unicode之间有什么区别和优劣势? 
  为什么这么使用 C 语言 fgetc() 函数会出现乱码? 
  你会如何重新学习编程? 
  什么是函数式编程思维? 
  如何不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于它的下标? 
  编程和研究原子弹哪个更难? 
  vscode是用什么语言写出来的?为什么华为能做出鸿蒙系统,却开发不出类似vscode的开发工具? 
  程序员想开一个编程公司需要怎么做? 
  如何学习Python,以及新手如何入门? 

前一个讨论
奇异值分解(SVD)有哪些很厉害的应用?
下一个讨论
该不该取消中小学行政人员,比如中学会计、财务人员的寒暑假?寒暑假托管可不可以让学校行政人员来管呢?





© 2025-06-10 - tinynew.org. All Rights Reserved.
© 2025-06-10 - tinynew.org. 保留所有权利