新手求助如何入门,关于数据结构与算法
以前不是cs方向的,刚开始学,感觉什么都不会。比如从书上看到的代码,不太明白意思。从网上搜这道题,有各种解答,自己c++和java都不熟,也就是大概看明白的样子,所以网上搜到的答案也经常在电脑上跑不起来。感觉学习效率非常差。不知从何开始。。
求各位指点 谢谢
比如说下面这个题 搜到很多答案 c++和java的 我也看了算法书链表的相关章节 但很多细节还是不清楚。。。
Implement an algorithm to find the kth to last element of a singly linked list
public static int nthToLast(LinkedListNode head, int k) {
if (head == null) {
return 0;
}
int i = nthToLast(head.nextj k) + 1;
if (i == k) {
System.out.println(head.data);
}
return i;
}
------解决方案--------------------

说实话数据结构我现在还不会!
不过还是建议楼主好好学呀,我是反面教材!
你可以去看《算法导论》和《算法设计》两本书!
------解决方案--------------------
递归算法。
返回的应该是结点在链表中的序号。
如果序号是k,就输出对应的数据值。
int i = nthToLast(head.nextj k) + 1;应是
int i = nthToLast(head.next,k) + 1;
------解决方案--------------------
<算法导论>蛮好的,内容也蛮深厚的,
不过个人觉得单单看书貌似有点吃力,有时.
要么你配合 mit的视频,
我现在看的是 孙斌的数据结构,用的是 c,蛮好的.
------解决方案--------------------
大家觉得 c/c++在写算法代码时,是不是比java容易些?因为有指针?
------解决方案--------------------
有本书叫做 大话数据结构 的,可以看看,写的相当不错。
------解决方案--------------------
是的 ,推荐<大话数据结构 >和郝斌讲解的数据结构视频 都是给真正的初学者看的,刚一接触算法,就被打击,难免影响后面的学习,激发自己对算法的兴趣是关键,学java对算法要求不高,甚至都没什么要求,但是这是内功,急不来,学习中多注意培养对算法的兴趣就是了
------解决方案--------------------
寻找倒数第k个元素,这种问题确实是特别入门级别的,建议看看大学教材《数据结构》,然后可以到csdn的大神july的博客中去看看各种算法的题目,仔细研究,还是蛮有意思的