这两天讲的是数据结构,大体上分为八种:链表、栈、队列、单调栈和单调队列(单调就是满足单调性函数的性质,单调性就是在一个定义的范围内x增大或减小,f(x)也增大或减小)、堆、hash、并查集、部分STL模板的应用。
上述数据结构前7种都是要自己建立而STL这个强大的算法库则可省去一些不必要的代码直接使用特殊的数据结构,相对来说链表,栈,队列都是和数组挂钩的只不过打开方式不同,也就是理解意义不同,我第一次学的时候感觉栈明明就是一个数组,其实不然,栈只是表明一个先进后出的思想,只要你满足这个思想就可以被称之为栈。(不知道对不对只是我现在的思想。)
当然好多东西我只是理解在真正做的时候还需要大量的练习,熟练地使用它们,比如hash我认为它也只是一个思想,也是一个特殊的操作,起到代替char或大数据的作用。而并查集了,则是树的概念,过多理解就不多说了。
接下来是注意事项:1.多注意观察一道题的数据范围,提高\省选都是要求较高的,一般不可能普通解法就能ac,这是需要解法加特定的数据结构来优化。
2.不能光靠搜索走天下,尽管我学到现在什么也不会就会搜索,但数据结构的应用也很重要。
3.在特定情况下栈和队列是可以互相转换,这也是转换数据的一种思想。
欢迎大家评论交换意见,谢谢。