数据结构与算法(Java版) | 就让我们来看看几个实际编程中遇到的问题吧!
Posted 李阿昀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法(Java版) | 就让我们来看看几个实际编程中遇到的问题吧!相关的知识,希望对你有一定的参考价值。
上一讲,我给大家简单介绍了一下数据结构,以及数据结构与算法之间的关系,照理来说,接下来我就应该要给大家详细介绍线性结构和非线性结构了,但是在此之前,我决定还是先带着大家看几个实际编程中遇到的问题,看完之后咱们再说。
第一个问题:一个有关单链表的面试题
如下所示,有这样一段Java代码,我想这段Java代码大家应该都能看得懂吧!无非就是使用字符串类的replaceAll
方法将指定字符串中的Java
子串全部替换成了李阿昀~
,So Easy!replaceAll
方法大家应该都见过吧!它就是用来做字符串替换的。
public static void main(String[] args)
String str = "Java, Java, hello, world!";
String newStr = str.replaceAll("Java", "李阿昀~"); // 算法
System.out.println("newStr = " + newStr);
那么,我现在就要问大家了,replaceAll
方法的提供者在进行字符串替换时,它到底是怎么做的呢?想都不用想,里面必定会有一个算法来做支撑,就是,而且这个算法你还要能看得懂,否则,坏事势必就会频发,你想啊,我们去开发一个程序,如果你连别人底层的代码都看不懂,那么你自己去优化程序不就是成无稽之谈了嘛!
总之,replaceAll
方法内部有一个算法,而且它是专门来研究字符串是如何进行替换的。
接下来,我们不妨来看一个有关单链表的面试题。
试写出用单链表表示的字符串类及字符串结点类的定义,并依次实现它的构造函数,以及计算串长度、串赋值、判断两串相等、求子串、两串连接、求子串在串中位置等7个成员函数。
注意,以上题目中有个函数的概念,而它其实就是我们Java里面的方法。
想必大家在大学里面学数据结构时,老师一定给你们布置过很多的练习题吧!而这其中不乏就有关于链表的练习题,而且初看还具有一定难度,例如以上那道有关单链表的面试题,你应该遇到过这样的练习题吧,要是没遇到过,那我想你的数据结构一定没学好,因为学数据结构你不大量的练习,你怎么学得好啊!
还是说回来上面那道有关单链表的面试题,其实这道面试题要求很明确,就是用单链表来实现字符串类的相关功能,而单链表正是数据结构中的一种,如果你没有学过单链表这种数据结构,那么这道面试题很显然你就完成不了。总之,这道面试题必须建立在大家对单链表了解的基础上才能完成得了。
第二个问题:一个五子棋程序
。。。
以上是关于数据结构与算法(Java版) | 就让我们来看看几个实际编程中遇到的问题吧!的主要内容,如果未能解决你的问题,请参考以下文章