0 0

求个数据结构的算法问题0

目前有两个List
其中一个内容是 1,2,3,4,5,6,7,8,8,9,4,4,10
  另一个内容是 2,3,4,5,6,7,8,9,15,8,16,3,11

其中第一个list是起点 第二个list是终点   比如起点是1  终点是2 , 启动2终点是3  ,起点是3 终点是4 , 启动时4 终点是5, 启点是5  终点是6 , 。。。。。。。。。。
我想通过这两个list查询出以下链路
链路1:1-2-3-4-5-6-7-8-9
链路2:1-2-3-4-16
链路3:1-2-3-4-5-6-7-8-15
链路4:10-11


请问大家有没有好的算法 请提供以下 最好能附上代码。
2012年11月27日 22:37

1个答案 按时间排序 按投票排序

0 0

public class ItEyeQues
{
	private int[] int1 = {1,2,3,4,5,6,7,8,8,9,4,4,10};
	private int[] int2 = {2,3,4,5,6,7,8,9,15,8,16,3,11};
	
	/**
	 *  传入一个终点,返回他对应的起点坐标
	 * @param i
	 * @return
	 */
	public List<Integer> getIndex(int i) {
		List<Integer> index = new ArrayList<Integer>();
		for(int j = 0; j < int1.length; j++) {
			if(int1[j] == i) {
				index.add(j);
			}
		}
		return index;
			
	}
	
	/**
	 * 启动程序,初始化值
	 */
	public void getPath() {
		for(int i = 0 ; i < int1.length; i++) {
			int startIndex = i;
			StringBuffer path = new StringBuffer();
			buildPath(startIndex, path);
		}
	}
	
	/**
	 * 防止回路 如 1-2-3-4-5-6-7-8-9-8
	 * @param end
	 * @param sb
	 * @return
	 */
	public boolean check(int end, StringBuffer sb) {
		String[] str = sb.toString().split("-");
		for(int i =0; i < str.length; i++) {
			if(!"".equals(str[i])) {
				if(Integer.parseInt(str[i]) == end) {
					return false;
				}
			}
		}
		return true;
	}
	
	/**
	 * 递归算法
	 * @param startIndex
	 * @param sb
	 */
	public void buildPath(int startIndex,StringBuffer sb) {
		int start = int1[startIndex];
		int end = int2[startIndex];
		if(check(end,sb) == false) {
			System.out.println(sb.toString());
			return;
		}
		if(sb.length() == 0) {
			sb.append(start + "-" + end);
		} else {
			sb.append("-" + end);
		}
		List<Integer> list = getIndex(end);
		if(list.size() == 0) {
			System.out.println(sb.toString());
			return;
		}
		for(int n = 0; n < list.size(); n++) {
			int startindex = list.get(n);
			buildPath(startindex, new StringBuffer(sb.toString()));
		}
	}
	
	/**
	 * test
	 * @param args
	 */
	public static void main(String[] args) {
		ItEyeQues it = new ItEyeQues();
		it.getPath();
	}
}


这个程序可以输出所有的路径,不太明白你想问什么,但是这个可以解决你所有的问题了

2012年11月28日 13:55

相关推荐

    python数据结构与算法

    python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法...

    数据结构算法动态演示软件

    本课件是一个动态演示数据结构算法执行过程的辅助教学软件, 它可适应读者对算法的输入数据和过程执行的控制方式的不同需求, 在计算机的屏幕上显示算法执行过程中数据的逻辑结构或存储结构的变化状况或递归算法执行...

    数据结构与算法之美

    无论是在业务开发还是基础架构研发中,数据结构与算法都能帮助我们更好地解决问题,提升工作效率,并为我们的职业生涯铺平道路。因此,学习并掌握数据结构与算法是每一位IT专业人员的基本功,也是每一位想要在技术...

    算法与数据结构.pdf

    这一过程通常分为四个步骤:分析问题,设计数据结构和算法,编码,以及测试与维护。在分析阶段,我们需要理解问题的内在联系;在设计阶段,我们将考虑如何用数据结构来表示问题中的元素,以及如何通过算法来处理这些...

    PTA-数据结构与算法题目集.zip

    PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 ...

    C++ 数据结构算法集合.zip

    C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据...

    数据结构与算法 数据结构与算法课后习题答案

    总之,数据结构与算法的学习是一个逐步深入的过程,课后习题的解答是这个过程中的重要环节。通过不断练习和理解,学生可以提升自己的编程思维和问题解决能力,为未来从事软件开发、系统分析或相关领域的研究奠定坚实...

    java数据结构与算法.pdf

    在编程领域,数据结构与算法是核心组成部分,它们直接影响到程序的效率和性能。Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点...

    数据结构与算法.pdf

    数据结构与算法.pdf 数据结构是计算机科学中的一门重要课程,涉及到数据的逻辑结构、存储结构、算法等方面的知识。在本文件中,我们将详细介绍数据结构的基本概念、逻辑结构、存储结构、抽象数据类型、算法等知识点...

    数据结构和算法分析 C++版 第三版

    "数据结构和算法分析 C++版 第三版" 本资源是《数据结构和算法分析 C++版 第三版》的摘要信息,作者是Clifford A. Shaffer,来自 Virginia Tech 的计算机科学系。该书将数据结构和算法分析的基本概念和技术进行了...

    数据结构算法集锦数据结构算法集锦

    本资源"数据结构算法集锦"是一个全面的教程,专为学习数据结构和算法设计的人士准备。 在数据结构中,我们通常会遇到以下几种类型: 1. **线性结构**:如数组,是最基本的数据结构,元素在内存中顺序存储,可以...

    数据结构算法设计题集

    在"数据结构算法设计题集"中,读者将有机会通过实例深入理解这些概念,并通过练习题提高解决问题的能力。这份资料不仅适合初学者入门,也对有一定基础的学习者巩固和提升算法设计能力大有裨益。通过不断实践和思考,...

    数据结构与算法

    数据结构与算法,讲述基本的数据结构和待机估计,还有简单的算法和复杂度计算

    数据结构与算法分析--C语言描述_数据结构与算法_

    本资源"数据结构与算法分析--C语言描述"是针对数据结构初学者的一个优秀教材,旨在帮助读者快速掌握这一领域。 首先,数据结构是组织和存储数据的方式,它决定了数据的访问效率和处理速度。常见的数据结构包括数组...

    数据结构、算法与应用 C++语言描述 原书第2版.pdf

    总之,《数据结构、算法与应用 C++语言描述》第二版是一本全面而深入的教程,涵盖了从基础到高级的数据结构和算法知识,结合C++的实现,有助于读者提升编程技能和解决问题的能力。对于想要在软件开发、系统分析或...

    武汉大学 C#数据结构与算法

    《武汉大学 C#数据结构与算法》是一门深入探讨计算机科学基础的课程,主要针对C#编程语言,涵盖了数据结构和算法这两个核心概念。在学习这门课程时,你将有机会掌握C#语言如何用于实现高效的数据管理和计算方法。 1...

    数据结构与算法视频课程(59集)

    资源名称:数据结构与算法视频课程(59集)资源目录:【】mysql视频教程第41讲存储过程【】数据结构与算法_1.10算法的评价【】数据结构与算法_1.1编程的灵魂:数据结构 算法【】数据结构与算法_1.2算法的作用:猜...

    算法与数据结构(c++版)电子版

    本书是高等教育“十一五”国家级规划教材,系统介绍各种数据结构、常用算法及算法分析技术。数据结构的内容包括线性结构、树形结构、哈希结构、索引结构;算法方面的内容包括选择算法、查找算法、排序算法。本书还...

    数据结构与算法教程

    数据结构与算法是计算机科学的核心内容,它们在解决实际问题、提高程序效率以及编写高质量软件中扮演着至关重要的角色。数据结构是计算机存储、组织数据的方式,它可以帮助我们在计算机中以更加高效和合适的方式表示...

Global site tag (gtag.js) - Google Analytics