一直被数据结构困扰,链表,队列,栈等,大学那时没上过这课,只是看过一本书,云里雾里。现在开始重新捡起数据结构,最简单的实现开始做起,编程马拉松就从这一步跑起来。
程序=数据结构+算法
什么是数据结构?一个非数值计算的操作对象,关系+操作。
什么是算法?有输入输出,一系列计算步骤,用来将输入数据转换成想要的输出数据。
抽象数据类型(ADT):操作的集合+数学模型
数据类型:操作的集合
linked list,queue,stack就是ADT,一系列操作的集合,有自己的数学模型,理解上就好理解了。
linked list:链表,一系列不必在内存中连续的结构组成,各对象按线性顺序排列。每个结构含表元素和指向下一个表元素的指针。
queue:FIFO,先进先出,可以线性存储,也可以链式存储。
stack:LIFO,后进先出,可以线性存储,也可以链式存储。
然后就是如何实现的问题了,实现当然根据语言不通而不通,C或者C++,抑或其他的,刚开始很久以前看着算法导论里面的伪代码,云里雾里的。具体实现还得通过自己一步一步的练习,自己比较木讷,故找到网上较好的代码,然后调试实现它,然后反过来读代码,然后再是写自己的代码。还得蜗牛一样的爬,刚看完实现C的以上数据结构的代码,以此作为总结,之后实现C++类的代码。