数据结构在编程项目中的作用和认识

news/2024/7/5 5:10:18

几天前就想写一篇关于《数据结构》方面的文章,一直没写,忍不住今天终于动手写了。我最开始学习《数据结构》课程使在大学二年级,当时编程基础薄弱的我认为它是一门很难的课程,将其和《数学分析》、《高等代数》并列为很难的几门课之一。当时的电脑还不普及,班级中能买到台式机的同学没有几个,实际上机操作进行感性学习《数据结构》课程的条件不具备。课堂上,来自老师利用在黑板上板书的方式来讲解,使得对于《数据结构》中许多关键概念的理解局限性很大。所有上面这些因素都造成了我们学习该课程的难度。

甚至在毕业后的第二年,我遇到一个计算机系毕业的校友,他毕业后从事计算机的软件开发工作,问他数据结构再软件开发中起什么作用,他的回答是:没有起什么作用。我当时心中起了疑惑:学校里的必修课,老师和同学们都认为很重要的一门课,难道在实际的开发中用不到吗?那为什么大家还华大力气来学习这么课?

后来慢慢地,随着自己对计算机课程学习的深入加上自己编程实践的积累,逐渐地对《数据结构》课程在实际的软件开发中起的作用有了更加清醒和深刻的认识。

首先,由于数据结构的重要性,许多高级程序设计语言,例如 C++,本身的库 (library) 中已经实现了许多常用的数据结构。这些常用的数据结构包括 queue、stack、list、map等。许多情况下,程序员无意中在使用一些数据结构,虽然没有意识到,但是他们仍然在使用数据结构。在上述情况下,就造成了一种错觉,数据结构对它们来说不重要。

其次,数据结构牵涉到两方面的内容,一个是设计数据结构,一个是使用他人设计好的数据结构。对于那些从事简单的软件开发工作的程序员,或者使用了第三方包库的程序员来说,它们大部分情况下是在使用别人已经设计好的数据结构,所以,他们感觉《数据结构》课程不重要。而对于复杂的软件项目开发,程序员既要使用现成的数据结构,又要设计解决问题
所需要的数据结构,在这种情况下,大学里学习的《数据结构》课程尤其显得重要。所以,我们在大学里认真学习好《数据结构》课程,尽量亲自动手编写实现课后的习题,至关重要。

最后,只要你想让计算机帮助解决你面临的问题,或者你提出了一个新颖的解决某个问题的算法,你就需要设计好数据结构,你使用 OOP 语言设计的类也是数据结构的表现形式。你的数据结构方面的过硬的功夫会帮助你更快地更高效地实现算法,顺利地帮助你解决面临的问题。

总之,我认为,《数据结构》课程就是一门专业基础课。学好之后会让自己受益无穷。君不见,现在好多国外介绍和讲解程序设计的书籍总喜欢在书的结尾部分顺便讲解一下简单的数据结构,以激起读者进一步的学习兴趣。


http://www.niftyadmin.cn/n/4083843.html

相关文章

Java 同一个包中,类之间的调用

如果是静态方法,直接 类名.方法名即可,如果是非静态方法,则需new一个对象出来,然后用对象.方法名调用 public class A{ public static void T1(){ System.out.print("这是A类的方法"); } public void T2(){ System.o…

R语言画图中输出上或者下标的方法

使用R语言画图时,有时需要上下标的方式输出,这时需要采用下面的格式: plot(1,ylabexpression(italic("toto")["subscript"]),xlabexpression(italic("toto")^"superscript"))

os库详解

os库基本介绍: os库提供通用的、基本的操作系统交互功能 os库是python标准库,包含几百个函数,能够处理与操作系统相关的常用路径操作、进程管理、环境参数设置等几类的功能 路径操作:os.path子库,处理文件路径及信息…

Java 不同包中,类之间的调用

使用 “import 包名.类名”的形式导入另一个主类,然后通过新建对象的方式使用主类的方法 package clothing;public class Shirt {public static String getColor() {return "Green";} }package clothing.pants;import static clothing.Shirt.getColor;…

Excel文档保持第一行一直可见

有时候我们在使用Excel查看某个Excel文档的时候,需要一直看某一列的具体含义,这时就需要将Excel中第一行的内容一直显示出来。那么在Microsoft office2007中如何做到呢?方法如下: 选中第一行以外的某个单元格,然后点击…

LaTeX中使用包subfig引用子图标号

[toc] 使用LaTeX的过程中总免不了要在一个大图中包含好几个子图。当前在LaTeX中插入多个子图使用的最新版本的包围subfig,基本上好的主流的国外期刊都会具体要求使用该包。 1 问题描述 我在使用该包的过程中遇到的一个问题为: 我需要的子图的展现方式…

Java中static关键字的五种使用方法

static关键字的四种用法: 1、修饰成员变量 2、修饰成员方法 3、修饰代码块 4、修饰内部类 5、静态导包 修饰成员变量 注意: 首先声明一下,这里所修饰的是成员变量,而不是局部变量,局部变量是不允许被static修饰的。&…

运行C++11代码

看《Data structures and algorithms analysis in C》(4ed.Mark Allen Weiss, Pearson)书籍,发现里面的代码为C11格式。但是我的电脑上安装的是vs2010,从时间上面推算vs2010肯定不支持C11,于是我就想着在我的win7电脑上安装一个轻量级的能支持…