2011-02-26 124 views
2

有人可以向我解释在c编程语言上下文中向量和链接列表ADT之间的区别。向量和链接列表之间的区别ADT

谢谢。

+0

可能重复[是矢量链表的特例吗?](http://stackoverflow.com/questions/4700052/are-vector-a-special-case-of-linked-lists) – bdonlan 2011-02-26 07:29:53

回答

5

那么,在C中,没有像“C++ std库”中那样的“vector”和“list”数据类型可以直接使用。但就“抽象数据类型”而言,矢量通常被认为代表连续存储,并且链接列表被认为是由连接在一起的单个单元表示的。向量提供快速的恒定时间随机访问读取和写入操作,但插入和删除向量元素需要线性时间。列表具有线性查找性能,用于查找要读取和写入的元素,但给定元素位置后,会有恒定的时间插入和删除。您也可以在常量时间内将项目添加到列表的开始和结尾(如果ADT实现缓存列表中最后一个元素的位置)。

+0

谢谢你的帮助:)。 – iPadDevloperJr 2011-02-26 07:31:56

+1

简单地说,我听过这个问题的最好解释。 – MadPumpkin 2012-03-30 22:43:14

0

vector是一个动态数组。内存中的元素相邻。链接列表中的元素不相邻。

2

一个向量通常作为一个连续的内存块被实现为一个数组。而列表可以分布在内存中,因为每个元素持有指向一个或多个其他元素的指针(可以双重链接)。这为向量提供了访问速度优势,但列出了插入/删除优势。

相关问题