自制编程语言数据结构
是不是每一门编程语言都有自己特定的数据结构和算法?你怎么看?
算法不一定,数据结构一定是特定的,数据结构是一门语言的基础,决定了这么语言要如何处理数据以及能够处理哪些数据。
算法说白了就是解决问题的方法,可以使用一个语言去实现基本上就可以使用另一种语言来实现,只是实现难度的区别,倒是不会有太大的问题。
单纯对于数据结构和算法来说,其实两者是一个抽象的东东,并不绑定在某个语言之上。换句话说,数据结构和算法可以理解为数据的领域。因此,其实几乎所有语言所支持的数据结构和算法可以理解成一样。
先说数据结构,比如常见的数据结构,数组、链表、栈、队列和树等等,这些数据结构每种语言都可以实现,只是实现细节上可能不同而已。以链表为例,在C语言中通常以指针的方式实现,而在Python中根本就没有指针的概念,但可以通过其它方式实现。
再说一下算法,算法更是与语言无关,算法就是一些对数据的处理逻辑,因此用任何语言都可以实现。如果语言实现不了某些逻辑,显然是有问题。
总体来说,数据结构和算法并不是语言相关的。但是有一点,除了数据结构外,还有数据类型的概念,比如整型、字符、浮点等等,这些内容在不同的语言中,实现上可能会有差异。
既然它能成为一门区别于其他的语言,那么必然存在有区别于其他语言特点的东西,可能是新的功能,可能是其他语言的改进。
但是呢,数据结构和算法是差不多的。为什么这么讲?就举个例子来说,我在学校的时候学习的是C语言,工作之后学习的是JavaScript。发现它们有非常多的共通之处。
第一,必须有变量的存在。变量可以简单理解为一个容器。在JavaScript中,***用var声明,当然let,const 也是可以的。这个容器装任何东西:数值,字符串,布尔值,数组,对象等等。
第二,必须存在一些基本类型的数据。如数字,字符串,布尔值等。而对象比较复杂,但都是由基本类型混合在一起的,即对象就不能归类为基本类型。再举一个简单的例子:国际单位制基本单位主要有长度m,时间s,质量kg,热力学温度(开尔文温度)K,电流A,光强度cd(坎德拉),物质的量mol等7个。在目前人类的认知当中,其他的单位都是由这几个推导出来的。比如速度就是长度和时间推导出:m/s。
第三,都存在判断,选择场景。比如 if...else...,switch....case.....
第四,都存在循环结构。for,while都是非常常见的关键字。
其他的我就不一一举例子了,所以如果你精通一门编程语言,学起其他的语言是非常简单的。这些知识,场景是非常基础的。新的语言不可能存在革命性的创新,基本上都是微创新,并且相互借鉴一些其他语言的优秀特征。并且新语言的出现,必然是随着应用场景发生了变化,或者性能发生瓶颈,必然突破去解决问题。
学C语言,不学数据结构和算法是不是绝对写不出好程序?
那倒不一定,数据结构、算法学了实践中没应用好写不出好的程序,但如果一个人思维严谨、数学功底好即使没写过数据结构与算法一样能写出很好的程序。当然,学过数据结构与算法的对写出好的程序是有帮助的。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/23521.html