数据结构/算法
xn4545945
it just works!
展开
-
数据结构----线性表的应用
一.实验目的 熟悉线性表的链式存储结构,熟练掌握线性表各种基本操作的实现,培养灵活运用线性表解决实际问题的能力。二.实验题目键盘输入一组元素,建立一个带头结点的单向链表(无序),遍历单向链表,在单向链表中删除元素E,然后将单向链表逆置,设计一个MAIN()函数,分别调试上述算法。对于单向链表的建立可以有两种方式选择,一种是从头结点后面依次插入,一种是从尾结点后面依次插入,可以原创 2012-08-21 21:26:53 · 3310 阅读 · 0 评论 -
算法----五大算法之分支限界法
分枝界限法是由三栖学者查理德·卡普(Richard M.Karp)在20世纪60年代发明,成功求解含有65个城市的旅行商问题,创当时的记录。“分枝界限法”把问题的可行解展开如树的分枝,再经由各个分枝中寻找最佳解。1. 基本概念描述:采用广度优先产生状态空间树的结点,并使用剪枝函数的方法称为分枝限界法。所谓“分支”是采用广度优先的策略,依次生成扩展结点的所有分支(即:儿子结点原创 2013-11-27 16:31:15 · 3397 阅读 · 0 评论 -
算法----五大算法之回溯法
回溯法(英语:backtracking)是暴力搜寻法中的一种。回溯法采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。回溯法通常用最简单的递归方法来实现,在反复重复上述的步骤后可能出现两种情况:1.找到一个可能存在的正确的答案。原创 2013-11-26 16:57:31 · 2107 阅读 · 0 评论 -
算法----五大算法之贪心法
贪心法( Greedy algorithm),又称贪心算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。1. 基本概念贪心算法与动态规划的不同在于它每对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。所谓贪心算法是指,在对问题求解时,总是做出原创 2013-11-26 11:19:10 · 3727 阅读 · 0 评论 -
算法----五大算法之动态规划
动态规划(英语:Dynamic programming,DP)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。1. 基本概念动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题原创 2013-11-25 17:55:27 · 2698 阅读 · 0 评论 -
算法----五大算法之分治法
分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。1. 基本概念字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如快速排序,归并排序等。2. 适用范围分治法所能解决原创 2013-11-23 20:27:00 · 2025 阅读 · 0 评论 -
数据结构----二叉树的遍历
一.实验要求 二叉树的遍历操作是树形结构其他众多操作的基础。本实验旨在使学生进一步加深对二叉树的先序、中序和后序等三种遍历次序特点的理解,熟悉二叉链表存储结构,熟练掌握二叉树上的递归算法的设计技术。二.实验题目 构造一棵二叉树,使用二叉链表方式存储,试设计程序,按照先序、中序、后序三种方式将这棵二叉树遍历出来,要求使用递归和非递归两种实现方式。 三.实现原创 2012-08-30 12:45:59 · 1477 阅读 · 0 评论 -
数据结构---表达式求值
一.实验目的 通过一个具体实际应用例子,加深对数据结构课程的理解,能够综合利用数据结构以及C语言的知识设计程序,应用到实际问题中去。二.实验题目常见的小型计算器可以通过输入一个由操作数和操作符组成的表达式计算出结构,设计一个程序模拟上述功能。本实验要求至少建立两个栈和一个运算符优先级比较表,按照运算法优先级的不同操作两个栈,最终实现整个表达式的求值。本程序可以移植到任何一个小型计算原创 2012-09-13 09:43:53 · 5662 阅读 · 2 评论 -
数据结构----栈和队列的综合应用
一.实验目的熟悉掌握数据结构中队列的基本操作,能够结合栈与队列的结构灵活解决一些实际中问题。二.实验题目在许多语言现象中,常见到一种形如abcba的文字,这种文字从左到右读和从右到左读结果是一样的,这种文字就是常说的回文。设计一个程序可以判断给定的一个文字是否是回文。考虑到栈的先进后出以及队列的后进先出,可以结合这两种结构来实现需要的功能,即将文字分别入队和入栈,然后依次输出判断是原创 2012-08-28 15:41:25 · 2204 阅读 · 0 评论 -
数据结构----各种排序算法的比较
一.实验目的 实现常用的排序算法,加深对这些算法的理解,以后可以将这些算法应用到实际问题的解决上。 二.实验题目排序是在实际问题中经常用到的算法,快速、选择和插入三种排序算法是排序算法中最简单的也是最常用到的,实现这三种算法,在不同的数值序列上运行,然后比较三种方法的空间复杂度和时间复杂度,分析比较结果,得出选择这三种排序算法的一般原则。三.实现提示1.待排原创 2012-09-05 20:59:37 · 1913 阅读 · 0 评论 -
最长回文子串
这题百度笔试题出过,mark一下。这哥们写得很全,果然还是得多混混leetcode。POJ上也有这题,不过很多OJ上都有。转自:http://blog.163.com/zhaohai_1988/blog/static/2095100852012716105847112/最长回文子串是最初我在网易笔试的时候遇见的,当时天真的把原字符串S倒转过来成为S‘,以为这样就将问题转化成为了求S转载 2014-08-24 13:16:51 · 1171 阅读 · 0 评论