mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-23 18:11:45 +08:00
Replace ":" with "。"
This commit is contained in:
@@ -38,7 +38,7 @@
|
||||
|
||||
!!! question "图片“链表定义与存储方式”中,浅蓝色的存储结点指针是占用一块内存地址吗?还是和结点值各占一半呢?"
|
||||
|
||||
文中只是一个示意图,只是定性表示。定量的话需要根据具体情况分析:
|
||||
文中的示意图只是定性表示,定量表示需要根据具体情况进行分析。
|
||||
|
||||
- 不同类型的结点值占用的空间是不同的,比如 int, long, double, 或者是类的实例等等。
|
||||
- 指针变量占用的内存空间大小根据所使用的操作系统及编译环境而定,大多为 8 字节或 4 字节。
|
||||
@@ -59,9 +59,9 @@
|
||||
|
||||
!!! question "C++ STL 里面的 std::list 已经实现了双向链表,但好像一些算法的书上都不怎么直接用这个,是不是有什么局限性呢?"
|
||||
|
||||
一方面,我们往往更青睐使用数组实现算法,而只有在必要时才使用链表。这是因为:
|
||||
一方面,我们往往更青睐使用数组实现算法,而只有在必要时才使用链表,主要有两个原因。
|
||||
|
||||
1. 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个元素),所以 `std::list` 通常比 `std::vector` 更占用空间。
|
||||
2. 缓存不友好:由于数据不是连续存放的,`std::list` 对缓存的利用率较低。一般情况下,`std::vector` 的性能会更好。
|
||||
- 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个元素),所以 `std::list` 通常比 `std::vector` 更占用空间。
|
||||
- 缓存不友好:由于数据不是连续存放的,`std::list` 对缓存的利用率较低。一般情况下,`std::vector` 的性能会更好。
|
||||
|
||||
另一方面,必要使用链表的情况主要是二叉树和图。栈和队列往往会使用编程语言提供的 `stack` 和 `queue` ,而非链表。
|
||||
|
||||
Reference in New Issue
Block a user