请问数据结构该怎么复习?
学好数据结构最重要的是对程序设计方式和程序语言概念和实现的理解
int i;
int i[];
struct i{};
ADT i{};
到底有什么区别,这就是程序设计语言实现的问题了。
定义了一种数据类型就是定义了一类操作
int i,j;
i=j+1;
这样的操作在语言本身中实现了,也就是说你不需要关心这样的操作程序语言是如何完成的,所以int就是基本数据类型
抽象了基本数据类型的就是数据结构。
当你定义了
ADT P{};
的时候,比如如果P是链表,这就要你去实现它各种的操作。而且P能够完成的所有操作都必须由你去实现,而你实现得基础就是这些char int float *p。...全部
学好数据结构最重要的是对程序设计方式和程序语言概念和实现的理解
int i;
int i[];
struct i{};
ADT i{};
到底有什么区别,这就是程序设计语言实现的问题了。
定义了一种数据类型就是定义了一类操作
int i,j;
i=j+1;
这样的操作在语言本身中实现了,也就是说你不需要关心这样的操作程序语言是如何完成的,所以int就是基本数据类型
抽象了基本数据类型的就是数据结构。
当你定义了
ADT P{};
的时候,比如如果P是链表,这就要你去实现它各种的操作。而且P能够完成的所有操作都必须由你去实现,而你实现得基础就是这些char int float *p。
。。基本数据类型。这就是抽象数据类型。
当你把类型定义完成后,剩下的就是算法去完成程序流程的控制。
所以:数据结构+算法=程序
还想说点的是,设计思想,程序设计语言,和数据结构,始终是促进计算机软件科学发展的最大动力。
一般来说都是思想先与语言,然后出现支持这种思想和包含这样思想的数据类型的语言实现。
具体说:
面向机器编程 机器语言,汇编语言
面向过程编程 C。。。。语言
面向对象编程 JAVA C++
当然思想毕竟只是思想,你可以用不同的语言实现。
但必须说明的是只能用一个层面上的语言实现。
比如,机器语言,由于其语言本身抽象层很低,低到了就像给一个对象赋值的操作也要程序员进行位操作。
而,C语言本身就支持了这样的操作 int i,j; i=9。
。。 所以想用机器语言完成面向过程的编程几乎不可能,因为在语言实现这个层面上,它不支持。
为什么说C也可以进面向对象的编程呢?关键就在C很好的支持ADT了。他可以用复杂了ADT去代替C++中已经变成基本数据类型的CLASS,但是正是因为要用C完成OO,必须程序员来实现(定义ADT)。
所以说,C不适合开发OO软件。
而C++却恰恰把CLASS定义成了一个基本类型,这样就完成了OO这一个层次的抽象。当然由于C++是C的超集,他同样是完全支持面向过程的。
。收起