这是一个关于数据结构的一个相关问题

数据结构这个东西和面向对象思想有什么区别呢?我感觉很像同一个东西
数据结构这个东西和面向对象思想有什么区别呢?我感觉很像同一个东西

数据结构体现了一种对数据的组织和算法的抽象
你比如说学生成绩统计、图书管理都被抽象成了表,文件结构、组织结构都被抽象成了树……使得你解决各种问题有了统一的思路。

面向对象虽然有3大思想,封装、继承、多态,但是本质是封装,换言之,在不同的代码之间划出了边界,并且开出了门,使得它们的彼此调用有了一定的规则。
面向对象和结构化编程我觉得可以类比,结构化编程实现了对代码控制刘的约束,使得代码之间不能任意跳转。而面向对象则在一个更高的层次上约束了代码。

数据结构struct是不是很类似Java的类或者C++的类呢?其实可以这样理解,但是结构体里面定义的成员都是public的,即都可以通过点运算.访问到,而Java或者C++中的成员可以是public也有private的,即可以手动设置哪些成员可以被访问哪些不可以被直接访问。更关键的是,struct里面不能写函数,这就使得它是面向过程的,struct实例化的对象就要传递参数给函数才能实现功能。Java或者C++不同,他们在类内就可以定义方法,该类实例化的对象可以直接通过点运算.调用这个方法,这就使得他们更灵活,具备面向对象的特点。面对对象就像是装修房子一样,把一些电线封装隐藏,只对外显示接电口,用户直接用接口就行。而C语言把时间花在了大量的函数封装上。