OC实现算法(二)- 广度优先搜索
来源:互联网 发布:网络使用管理规定 编辑:程序博客网 时间:2024/06/06 06:39
问题:广度搜索A到D的最短路径
队列
广度优先搜索,按顺序按顺序添加检查,队列数据结构可以实现这种目的,队列是一种先进先出的数据结构
OC中一般可变数组实现,队列的这种功能
实现
_dic = @{@"A":@[@"B",@"F"],@"B":@[@"C"],@"C":@[@"D"],@"D":@[],@"E":@[@"C"],@"F":@[@"E",@"G"],@"G":@[@"C"]}; BOOL lj = [self search:@"D"]; if(lj){ NSLog(@"存在A到D的路径"); }else{ NSLog(@"不存在A到D的路径"); }
//广度搜索
-(BOOL)search:(NSString *)str{ //查找队列 NSMutableArray *array = [NSMutableArray array]; [array addObject:@"A"]; //已经查找过的节点 NSMutableArray *searchArray = [NSMutableArray array]; while (array.count) {//直到队列为空 //去除队列最前面一个节点 NSString *name = array.firstObject; [array removeObjectAtIndex:0]; if (![searchArray containsObject:array.firstObject]){//没有检查过 if ([name isEqualToString:str]) {//找到节点 return YES; }else{ //这个节点检查过 [searchArray addObject:name]; //将这个节点对应的邻居节点加入查找队列 [array addObjectsFromArray:[_dic valueForKey:name]]; } } } return NO; }
阅读全文
0 0
- OC实现算法(二)- 广度优先搜索
- 图的基本算法(二、广度优先搜索)
- 图算法(二)—深入理解广度优先搜索
- 算法二:深度和广度优先搜索
- 【算法学习】二、深度优先搜索与广度优先搜索
- 图的广度优先搜索算法实现
- 广度优先搜索算法
- 广度优先搜索算法
- 广度优先搜索算法
- [ 算法 ]广度优先搜索!
- 广度优先搜索算法
- 广度优先搜索算法
- 广度优先搜索算法
- 【算法】广度优先搜索
- 广度优先搜索算法
- 广度优先搜索算法
- 从零开始学算法(四)搜索算法(二)(广度优先搜索)
- 广度优先搜索(BFS)算法
- Eclipse 保存文件时自动格式化代码
- 彷徨的我
- mysql乐观锁总结和实践
- JavaScript的加载执行顺序
- 火星人遇上骚娘们叶丽宁,倒霉!
- OC实现算法(二)- 广度优先搜索
- web.xml配置报ClassNotFound错误解决方法之一
- 15. 3Sum/16. 3Sum Closest(C++)
- org.hibernate.MappingException: Unknown entity 解决方法
- Linux下使用Eclipse开发Hadoop应用程序
- ActiveRecord 查询使用字符串插值
- UVa11093 Just Finish it up (贪心+思路)
- 私人
- 人工神经网络模型、人类的大脑和人类社会本身相似性 (一家之言,仅供一笑)。