微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

给定边缘列表时如何执行DFS或BFS?

如何解决给定边缘列表时如何执行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 举报,一经查实,本站将立刻删除。