哈哈!又要写总结了。我可有一肚子的话要说,早就听老师提到过“数据结构”,很难学但很重要,果然如此。
刚开始,听学长讲完后,真是一头雾水,只想睡觉,晕!但慢慢的,我发现,其实“栈”很好玩,就是“后进先出”,用它解决火车进站问题很方便,并且如果调用“栈类”的话,想进栈,就进,想出就出(其实质是把栈顶元素消除)。二叉树有点难,仅仅“给出前序和中序,输出后序”,我就折腾了两天,一开始是用栈模拟的,代码有点长,后来,经他人指点,用的递归,那代码是想当的短,关键是想出递归出口和子问题。接下来是并查集,先是稍微看了一遍课件,就去做题,结果不会做,很是急人,后来跟人家讨论,原来set[]和find()就相当于在建树,不同的代码建造不同的树,若在调用一次find(),即从一个点顺着树找树根,这个就有讲究了,有快有慢,而且对于不同的题,有时候还找不对呢。最难的当数”KMP“,好不容易有点眉目了,才发现它不过是
用来判断a是不是b的字串,并且,实测发现,strstr比它快了好几倍。终于,经过做题,又有新的顿悟了:有好多问题调用strstr函数并不能很令人满意地解决,这时候就得依靠kmp了,重点在于理解它的操作过程,然后加以变通,灵活应用,可说实话,到现在我还没有弄明白其原理是什么,想着想着就迷糊了。