这两天学完STL之后发现知识都在脑子里,但是到了做题有时候就是不知道该选择什么样的数据结构了- -,结合自己的解题思路和liuchuo在gitHub上的题解来整理的- -,可能不会分类,只是给自己做一个记录把。
liuchuo在gitHub题解:https://github.com/liuchuo/PAT
还有我们学校acm网站的题:https://acm.sdut.edu.cn/onlinejudge3/
新OJ 的风格太心水了!!!喜欢++
1.数据结构实验之二叉树一:树的同构
首先我们要将每一条结点的信息存储在一起,还要能实现在建树时访问第i个结点,所以我们选取了结构体存储每一条结点的信息。
现在我们能实现在建树的时候传值n,就能访问到第n个结点对应的左子树、右子树了。
接下来的问题就是我们如何去开始建树,我们看到题目的信息,左右子树存储的实际上是结点的编号,如果不是‘-’我们可以通过给每个给出的结点编号一个给定的数组,如果是1就是有这个结点。我们把所有左右孩子标记了,n个结点中没有被标记的就是根,从根开始遍历建树。
.........很麻烦,都有点绕不过来,后来发现一种解法直接不用建树,哭泣
我们不用建树直接比较结点的data数据,如果相等就比较左右孩子是否是一样的
还是利用了上面说的数据结构存储结点信息,也是为了能访问第i个结点的所有信息。