数据结构和算法高中生能学吗?

如果能学请帮忙告诉从哪开始下手! 谢谢!
[b]问题补充:[/b]
是不是要用到离散数,高等数学的知识呢?哪些数学是必学的呢?谢谢
[b]问题补充:[/b]
现在掌握Java . C#语言 但对于计算机理论不了解,写不出高效的程序,所以想学习数据结构和算法,但不知道从哪儿入手!

数据结构不是学出来的,是用出来的.
因为如果不在实际的应用中去选择设计数据结构的话,光学习理论知识很枯燥,而且根本是纸上谈兵,纯理论的数据结构是不会综合考虑资源占用问题的,而实际的应用要考虑,那就要根据应用的需求去设计了.

算法更是这样.

所以,你要有任务,然后就像congjl2002说的那样手头有基本书,边做任务边查资料做选择就行了.

没有应用的话,那些书籍走马观花的看看就行了.
要学好一定要有应用

1.学习数据结构应该至少“会”一个语言,比如C,这样你才能理解书中的一些描述
2.然后如果你有时间,就可以开始学习数据结构了,清华大学出版的大学教材就是一本不错的教材
3.另外书中描述的一些伪代码尽量写成可执行的代码,通过结果也可以更好的理解这些东西

基本的数据结构是不要这些知识的
数据结构里讲的很多东西现在都是底层自己来实现了
在平时正常工作中(尤其是java中)基本是不用考虑的,,学习一下只是增加对编程的了解
继续学习 数值分析 等学科时才需要这些东西

那可不是数据结构的问题,数据结构学好了是可以优化你程序的流程,比如查找你可以使用折半查找,这个是可以通过学习数据结构提高的
其他的比如说你想写出结构清晰,鲁棒性强的代码,这个是靠经验的,尤其是多读别人的代码,你可以先读JDK的代码
另外推荐几本书,《effective java》《重构-改善既有代码的设计》等