2024-09-01
课程学习
00

邓俊辉老师的书。

在这里插入图片描述

1 有数组为什么还需要向量?

几乎所有程序设计语言中都会有数组,程序设计语言的开发者将数组作为一种内置的数据类型。

数组在刚开始初始化的时候就已经固定了长度,也可以依照下标查找,但还有很多种特性数组是不含有的。

向量这种抽象数据类型,它是一种利用程序设计语言抽象出来的一种数据类型。我们可以在运行时开辟一块空间来放一段数据,它就是一个对象。我们可以轻易的利用操作接口方法来对这些数据进行获取、插入、删除、查找、排序、集合化。可以看到如果拥有这些方法可以对数据进行更好的处理,是数组不能替代的。

还有一点是非常重要的,无论我们基于什么语言设计了一个抽象数据类型,在内部的实现方法可能就是使用的数组,我们只是做了将数组抽象化为更普遍的数据类型,并把这种数据类型取名为向量,因为这种数据类型和向量的很多特性都很相似。

2 什么是抽象数据类型?什么是数据结构?

抽象数据类型=数据模型+定义在该模型上的一组操作

数据结构=基于某种特定语言,实现抽象数据类型adt的一整套算法。

数据类型就是指 Int x,我们抽象数据类型的目的就是 vector x。

抽象数据类型是一种抽象定义、要考虑操作语义、不涉及数据的存储方式。

数据结构是一种具体的实践方法,要注重内部的实现算法,要考虑数据的具体存储机制。

3 在这一章中主要讲的内容是什么?

假如我们用c语言写了一个队列数据结构。我们应该讲一下队列这种数据结构的特性,所需要的方法(从对象的角度来看,就是我们应该讲一下队列这种对象应该有哪些行为和属性),同时我们也应该考虑去实现这些方法的时候我们的程序应该怎么写才能使得对象用起来更加顺手,去实现这些方法我们有不同的程序写法(每一种写法都是一种算法),如何使这些算法更加低成本和高效率也是我们应该考虑的。

这一章的内容就是在讲向量这个数据结构应该具有的行为方法,以及我们应该怎么用程序去实现这些行为方法,并且使得程序是高效率和低成本兼顾着的。

4 有序向量和无序向量有什么区别?

由于这两者表达数据的方法不一样,所以这两者的数据结构实现算法也不一样。有序向量可以很方便的进行查找操作,如果我们在给一堆数据建模,然后查找操作非常频繁的话就可以优先使用有序向量。

5 总结

如果我们是在用c语言学习数据结构这门课,那么内容将会有线性表(数组、链表)、队列与栈(特殊线性表)、串、树、图,在这些内容中又会详细的了解到查找与排序。

现在我们用c++语言学习数据结构这门课,要将关注点放在对象上来。

向量是寻秩访问,内部是由数组实现的,在物理空间上一个向量对象里的数据是连续存储的。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!