第五章学习小结

本章学习的内容是树和二叉树,老师在上课时就说过这一章的内容比较难理解比较复杂,果不其然PTA上的编程题连题目都不是很能理解,但感觉只要理解好树是如何建立的,树的结构是怎样的,就能有比较清晰的脉络和思路。

首先是List Leaves,这个题目难点估计就是理解题目的意思和如何获得结点的值。首先,要先弄清楚题目中列出的第一个结点并非就是根结点,而是0号结点,第二个出现的则是1号结点,左边的值代表左结点,右边的值代表右结点,若没有左右结点则为‘-’,则按照题目给出的样例,0号结点的左结点为1号,无右结点,1号结点无左右结点,2号结点的左结点为0号,无右结点,所以将各个结点依次连接,就能构成一棵完整的树;而在如何获得结点的值的问题上,则是用ASCII码这个技巧来获得,因为若无结点要用‘-’来表示,所以必须定义为char类型,因此就可以用ASCII码来转换数值。

第二是树的同构,这个题目的重点在于如何比较两棵树是否为“同构”,首先可以通过比较结点数是否相同来做初步的判断,然后再进一步判断每一个结点的数值,因为使用数组来储存树,所以可以根据下标来一个个比较。

第三是深入虎穴,这道题因为难度比较大所以是老师带着打的,难点就在于理解题目的意思和如何优化数据结构。

 

posted @ 2019-05-05 23:57  有只泉仔  阅读(113)  评论(1编辑  收藏  举报