是不是每一门编程语言都有自己特定的数据结构和算法?你怎么看?

算法不一定,数据结构一定是特定的,数据结构是一门语言的基础,决定了这么语言要如何处理数据以及能够处理哪些数据。

算法说白了就是解决问题的方法,可以使用一个语言去实现基本上就可以使用另一种语言来实现,只是实现难度的区别,倒是不会有太大的问题。


现在的数据结构演变成数据库!算法一样!结构指向不一样!


既然它能成为一门区别于其他的语言,那么必然存在有区别于其他语言特点的东西,可能是新的功能,可能是其他语言的改进。

但是呢,数据结构和算法是差不多的。为什么这么讲?就举个例子来说,我在学校的时候学习的是C语言,工作之后学习的是JavaScript。发现它们有非常多的共通之处。

第一,必须有变量的存在。变量可以简单理解为一个容器。在JavaScript中,采用var声明,当然let,const也是可以的。这个容器装任何东西:数值,字符串,布尔值,数组,对象等等。

第二,必须存在一些基本类型的数据。如数字,字符串,布尔值等。而对象比较复杂,但都是由基本类型混合在一起的,即对象就不能归类为基本类型。再举一个简单的例子:国际单位制基本单位主要有长度m,时间s,质量kg,热力学温度(开尔文温度)K,电流A,光强度cd(坎德拉),物质的量mol等7个。在目前人类的认知当中,其他的单位都是由这几个推导出来的。比如速度就是长度和时间推导出:m/s。

第三,都存在判断,选择场景。比如if...else...,switch....case.....

第四,都存在循环结构。for,while都是非常常见的关键字。

其他的我就不一一举例子了,所以如果你精通一门编程语言,学起其他的语言是非常简单的。这些知识,场景是非常基础的。新的语言不可能存在革命性的创新,基本上都是微创新,并且相互借鉴一些其他语言的优秀特征。并且新语言的出现,必然是随着应用场景发生了变化,或者性能发生瓶颈,必然突破去解决问题。


单纯对于数据结构和算法来说,其实两者是一个抽象的东东,并不绑定在某个语言之上。换句话说,数据结构和算法可以理解为数据的领域。因此,其实几乎所有语言所支持的数据结构和算法可以理解成一样。

先说数据结构,比如常见的数据结构,数组、链表、栈、队列和树等等,这些数据结构每种语言都可以实现,只是实现细节上可能不同而已。以链表为例,在C语言中通常以指针的方式实现,而在Python中根本就没有指针的概念,但可以通过其它方式实现。

再说一下算法,算法更是与语言无关,算法就是一些对数据的处理逻辑,因此用任何语言都可以实现。如果语言实现不了某些逻辑,显然是有问题。

总体来说,数据结构和算法并不是语言相关的。但是有一点,除了数据结构外,还有数据类型的概念,比如整型、字符、浮点等等,这些内容在不同的语言中,实现上可能会有差异。


原始地址:/baike/567.html