以航班为例,从出发城市到目标城市区域内各段最远的航班

//1.程序入口

static void Main(string[] args)
        {
            Test.SampleOne sample = new Test.SampleOne();
            sample.Start(1, "北京", "深圳");
        }

//2.实现方法

using System;
using System.Collections.Generic;

namespace Test
{
    public class SampleOne
    {
        /// <summary>
        /// 航班
        /// </summary>
        private List<FlightInfo> flights = null;

/// <summary>
        /// 航班数量
        /// </summary>
        private int numFlights = 0;

private void InitData()
        {
            if (flights == null)
            {
                flights = new List<FlightInfo>();
                flights.Add(new FlightInfo("北京", "沈阳", 684));
                flights.Add(new FlightInfo("北京", "杭州", 1273));
                flights.Add(new FlightInfo("杭州", "武汉", 751));
                flights.Add(new FlightInfo("北京", "武汉", 1161));
                flights.Add(new FlightInfo("武汉", "深圳", 1069));
                flights.Add(new FlightInfo("沈阳", "深圳", 2792));

numFlights = flights.Count;
            }
        }

/// <summary>
        /// 寻找出发城市到目的地城市最远距离的航班
        /// </summary>
        /// <param name="i">寻找次数</param>
        /// <param name="from">出发城市</param>
        /// <param name="to">目的地城市</param>
        public void Start(int i, string from, string to)
        {
            //初始化数据
            InitData();

FlightInfo f = Find(from);

if (f == null)
            {
                Console.WriteLine("无此航班");
                Console.ReadKey();
            }
            Console.WriteLine("节点:{0},出发地:{1},目的地:{2},距离:{3}", i, f.From, f.To, f.Distance);

if (f.To.Equals(to))
            {
                Console.WriteLine("已到达目的地。");
                return;
            }

Start(++i, f.To, to);
            Console.ReadKey();
        }

//找出离出发城市最远的航班
        private FlightInfo Find(string from)
        {
            int pos = -1;
            int dist = 0;
            for (int i = 0; i < numFlights; i++)
            {
                if (flights[i].From.Equals(from) && !flights[i].Skip)
                {
                    if (flights[i].Distance > dist)
                    {
                        pos = i;
                        dist = flights[i].Distance;
                    }
                }
            }

if (pos != -1)
            {
                flights[pos].Skip = true;
                return new FlightInfo(flights[pos].From, flights[pos].To, flights[pos].Distance);
            }
            return null;
        }
    }

/// <summary>
    /// 航班信息
    /// </summary>
    public class FlightInfo
    {
        private string from;
        private string to;
        private int distance;
        private bool skip;

public FlightInfo(string strFrom, string strTo, int intDistance)
        {
            from = strFrom;
            to = strTo;
            distance = intDistance;
            skip = false;
        }

/// <summary>
        /// 出发地
        /// </summary>
        public string From
        {
            get { return from; }
            set { from = value; }
        }

/// <summary>
        /// 目的地
        /// </summary>
        public string To
        {
            get { return to; }
            set { to = value; }
        }

/// <summary>
        /// 距离
        /// </summary>
        public int Distance
        {
            get { return distance; }
            set { distance = value; }
        }

/// <summary>
        /// 是否跳跃忽略
        /// </summary>
        public bool Skip
        {
            get { return skip; }
            set { skip = value; }
        }
    }
}

搜索算法--爬山法 (代码示例)相关推荐

  1. boost::graph模块实现广度优先搜索算法的使用示例

    boost::graph模块实现广度优先搜索算法的使用示例 实现功能 C++实现代码 实现功能 boost::graph模块实现广度优先搜索算法的使用示例 C++实现代码 #include <b ...

  2. 用户自定义协议client/server代码示例

    用户自定义协议client/server代码示例 代码参考链接:https://github.com/sogou/workflow message.h message.cc server.cc cli ...

  3. 2021年大数据Flink(二十六):​​​​​​​State代码示例

    目录 State代码示例 Keyed State 官网代码示例 需求: 编码步骤 代码示例 Operator State 官网代码示例 需求: 编码步骤: 代码示例 State代码示例 Keyed S ...

  4. TensorFlow常用操作:代码示例

    1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...

  5. TensorFlow基本计算单元:代码示例

    1,代码示例: import tensorflow as tf a = 3 #创建变量 w = tf.Variable([[0.6,1.2]])#创建行向量 x = tf.Variable([[2.1 ...

  6. php mms,PHP代码示例_PHP账号余额查询接口 | 微米-中国领先的短信彩信接口平台服务商...

    PHP余额查询接口代码示例 请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://api.weimi.cc/2/accoun ...

  7. java结束全部操作代码_Java创建与结束线程代码示例

    这篇文章主要介绍了Java创建与结束线程代码示例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考. 本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程 ...

  8. doc python 颜色_Python wordcloud.ImageColorGenerator方法代码示例

    本文整理汇总了Python中wordcloud.ImageColorGenerator方法的典型用法代码示例.如果您正苦于以下问题:Python wordcloud.ImageColorGenerat ...

  9. 机器学习简单代码示例

    机器学习简单代码示例 //在gcc-4.7.2下编译通过. //命令行:g++ -Wall -ansi -O2 test.cpp -o test #include <iostream> u ...

  10. 手机如何看python代码_python如何绘制iPhone手机图案?(代码示例)

    本篇文章给大家带来的内容是介绍python如何绘制iPhone手机图案?(代码示例).有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 虽然我用不起苹果手机,但我可以用python画出 ...

最新文章

  1. 黑马程序员-4 String类和StringBuffer类
  2. UA MATH636 信息论8 线性纠错码
  3. 《R语言实战》第2章
  4. WP7上Metro风格的程序栏图标汇总
  5. Netflix提出梯度提升决策树网络Hammock!
  6. 1.7-27编程基础之字符串 单词翻转
  7. 前目的地罗伯森是谁_距离目的地只剩10公里,开车师傅却在高速公路上睡着了...
  8. 拼图项目的诅咒:为什么Java 9一遍又一遍地延迟?
  9. go var 一个整数_Go语言学习基础-值、变量、常量
  10. IGDB|2021年大学生夏令营开始报名啦!
  11. 容器编排技术 -- Kubernetes kubectl create secret docker-registry 命令详解
  12. 添加控制器 提示找到不到上下文_JS局部上下文和全局上下文
  13. Intel开发工具之VTune
  14. C语言中如何使用system函数
  15. DSA数字签名含C语言实例
  16. centos7 python3 爬虫登陆邮箱_使用爬虫爬取超星学习通的作业时间并且通过邮件提醒!...
  17. 黑马程序员:一些简单的设计模式
  18. wampserver下载以及安装教程
  19. 3dMAX+Vary 调节焦散效果爬坑
  20. Pool:对象池源码解读

热门文章

  1. Ubuntu 18.04将语言改为中文(简体)
  2. 下载python离线包,安装离线包,自动解决依赖关系
  3. 区块链未来的发展前景是什么?
  4. 企业招聘网络推广运营人员的岗位工作职责该如何写?
  5. 分治策略时间复杂度计算
  6. linux下的pmap命令
  7. FileReader的使用方法
  8. 【显著目标检测论文】Pyramid Feature Attention Network for Saliency detection
  9. 华夏幸福转让平安资管5.69%股份,价款合计42.03亿
  10. 什么是远程桌面连接?win11系统如何启用远程桌面连接?