我对邻接列表有疑问。这是我正在使用的示例列表。
在代码(C ++)中,我将其实现为一些通用元素的列表向量。所以vector<list< element >>
。在这种情况下,元素A, C, D, H, K, L, N
都在向量中。我的问题是抓住一个特定的元素。假设我使用for循环迭代向量adjList
。要从向量中获取元素,您可以说*vector name*[i]
并且它自己获取元素。但是当向量中的元素是列表的开头时它会怎么做?假设我只想要元素D
。为此,我说adjList[3]
。这会抓住D
吗?或者说会抓住从D
开始的整个列表?我不想要整个列表,我只想要D
。如果它抓住整个列表,我怎么能让它抓住我想要的一个元素?有人可以帮忙解释一下吗?
答案 0 :(得分:1)
当你自己写作时,你有一个let input = inputStr.utf8
let n = input.count
var output = [Bool](count: n, repeatedValue: false)
let one = UInt8(49) // 1
for (idx, char) in input.enumerate() {
if char == one { output[idx] = true }
}
。这意味着vector<list< element >>
会为您提供列表。您的A,C,D元素可以adjList[i]
或详细地访问
adjList[i].front()
如果您还需要使用列表的其余部分,后者可能会很有用。