如何解决给定边缘列表时如何执行DFS或BFS?
当只给出一个边列表时,我如何执行 DFS 或 BFS?
我知道在给出邻接表或邻接矩阵时如何做,我也知道如何将边缘列表转换为邻接表或邻接矩阵,但我想直接从边缘列表做 DFS 或 BFS。
import React,{ Component } from 'react'
import { View } from 'react-native'
import SelectMultiple from 'react-native-select-multiple'
const fruits = ['Apples','Oranges','Pears']
// --- OR ---
// const fruits = [
// { label: 'Apples',value: 'appls' },// { label: 'Oranges',value: 'orngs' },// { label: 'Pears',value: 'pears' }
// ]
class App extends Component {
state = { selectedFruits: [] }
onSelectionsChange = (selectedFruits) => {
// selectedFruits is array of { label,value }
this.setState({ selectedFruits })
}
render () {
return (
<View>
<SelectMultiple
items={fruits}
selectedItems={this.state.selectedFruits}
onSelectionsChange={this.onSelectionsChange} />
</View>
)
}
}
export default App
解决方法
假设这是一个有向图,你可以按源边对边列表进行排序,然后为每个源在列表中的开始或结束位置做一个映射。您无需重新创建整个数据结构即可有效地获得邻接列表表示。
排序可以在 O(N) 时间内完成,使用像这样的就地计数排序:Counting sort implementation that modifies the input array,它可以方便地生成结束位置的映射作为副作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。