01 2015 档案

摘要:数组实现方式: 1 #ifndef LINEARLIST_H 2 #define LINEARLIST_H 3 #include 4 #include 5 #include 6 using std::cout; 7 using std::endl; 8 template 9 cla... 阅读全文
posted @ 2015-01-30 17:07 CoderInCV 阅读(386) 评论(0) 推荐(0) 编辑
摘要:1、问题描述例子:假定 n= 1 4, R= { ( 1 , 11 ), ( 7 , 11 ), ( 2 , 1 2 ), ( 1 2 , 8 ), ( 11 , 1 2 ), ( 3 , 1 3 ), ( 4 , 1 3 ), ( 1 3 , 1 4 ),( 1 4 , 9 ), ( 5 , 1 ... 阅读全文
posted @ 2015-01-30 16:41 CoderInCV 阅读(1691) 评论(0) 推荐(0) 编辑
摘要:1、问题描述开关盒布线问题是这样的:给定一个矩形布线区域,其外围有若干针脚。两个针脚之间通过布设一条金属线路而实现互连。这条线路被称为电线,被限制在矩形区域内。如果两条电线发生交叉,则会发生电流短路。所以,不允许电线间的交叉。每对互连的针脚被称为网组。我们的目标是要确定对于给定的网组,能否合理地布设... 阅读全文
posted @ 2015-01-30 15:55 CoderInCV 阅读(1186) 评论(0) 推荐(0) 编辑
摘要:1、问题描述 一列货运列车共有 n节车厢,每节车厢将停放在不同的车站。假定 n个车站的编号分别为1 ~n,货运列车按照第n站至第 1 站的次序经过这些车站。车厢的编号与它们的目的地相同。为了便于从列车上卸掉相应的车厢,必须重新排列车厢,使各车厢从前至后按编号 1 到n的次序排列。当所有的车厢都按照... 阅读全文
posted @ 2015-01-29 22:26 CoderInCV 阅读(1919) 评论(0) 推荐(0) 编辑
摘要:1、问题描述 汉诺塔( Towers of Hanoi)问题来自一个古老的传说:在世界刚被创建的时候有一座钻石宝塔(塔1 ),其上有6 4个金碟(如图 5 - 4所示)。所有碟子按从大到小的次序从塔底堆放至塔顶。紧挨着这座塔有另外两个钻石宝塔(塔 2和塔3)。从世界创始之日起,婆罗门的牧师们就一直... 阅读全文
posted @ 2015-01-29 20:35 CoderInCV 阅读(1544) 评论(0) 推荐(0) 编辑
摘要:1、问题描述: 在这个问题中将要匹配一个字符串中的左、右括号。例如,字符串 ( a * ( b + c ) + d )在位置1 和4有左括号,在位置 8和 11 有右括号。位置 1 的左括号匹配位置 11 的右括号,位置 4的左括号匹配位置8的右括号。对于字符串 ( a + b ) ) (,位置 ... 阅读全文
posted @ 2015-01-29 15:47 CoderInCV 阅读(511) 评论(0) 推荐(0) 编辑
摘要:除了公式化即数组的实现方式,堆栈还可以用链表的方式实现,这种方式对空间利用率更高。在使用链表来表示堆栈时,必须确定链表的哪一端对应于栈顶。如果把链表的右端作为栈顶,那么可以利用链表操作 I n s e r t ( n , x )和D e l e t e ( n , x )来实现堆栈的插入和删除操作,... 阅读全文
posted @ 2015-01-29 14:51 CoderInCV 阅读(2003) 评论(0) 推荐(1) 编辑
摘要:堆栈和队列可能是使用频率最高的数据结构,二者都来自于线性表数据结构(经过某种限制以后)。堆栈数据结构是通过对线性表的插入和删除操作进行限制而得到的(插入和删除操作都必须在表的同一端完成),因此,堆栈是一个后进先出( last-in-first-out, LIFO)的数据结构。1、定义定义 [堆栈] ... 阅读全文
posted @ 2015-01-28 18:58 CoderInCV 阅读(324) 评论(0) 推荐(0) 编辑
摘要:1、像堆栈一样,也可以使用链表来实现一个队列。此时需要两个变量 f r o n t和r e a r来分别跟踪队列的两端,这时有两种可能的情形:从 f r o n t开始链接到 r e a r(如a所示)或从 r e a r开始链接到f r o n t(如图 b所示) 。不同的链接方向将使添加和删除操... 阅读全文
posted @ 2015-01-28 15:51 CoderInCV 阅读(643) 评论(0) 推荐(0) 编辑
摘要:队列也是一种特殊的线性表。队列的插入和删除操作分别在线性表的两端进行,因此,队列是一个先进先出( first-in-first-out, FIFO)的线性表。1、抽象数据类型定义:队列( q u e n e)是一个线性表,其插入和删除操作分别在表的不同端进行。添加新元素的那一端被称为队尾 ( r e... 阅读全文
posted @ 2015-01-27 22:11 CoderInCV 阅读(1726) 评论(0) 推荐(0) 编辑
摘要:树的定义:树( t r e e) t 是一个非空的有限元素的集合,其中一个元素为根( r o o t),余下的元素(如果有的话)组成 t 的子树( s u b t r e e)。树中层次最高的元素为根,其下一集的元素是余下元素所构成子树的根。树的另一常用术语为级(level)。指定树根的级为1。元素... 阅读全文
posted @ 2015-01-27 17:10 CoderInCV 阅读(1339) 评论(0) 推荐(0) 编辑
摘要:算法思想:基本的思想为分治算法,也就是将一个问题分成多个更小的部分递归解决。具体到合并排序,就是将待排序序列分为小的序列,递归进行排序,然后合并。步骤:1、分解:将n个元素分成各含n/2个元素的子序列2、解决:用合并排序对两个子序列递归排序3、合并:合并两个已排序的子序列以得到排序结果在对子序列排序... 阅读全文
posted @ 2015-01-23 20:39 CoderInCV 阅读(171) 评论(0) 推荐(0) 编辑
摘要:基本原理:比较相邻的元素。每一轮选出一个最大的元素,重复这个过程算法复杂度:O(n2)算法实现:void Bubblesort(int array[],int n){ int temp; for (int j = 0; j != n-1;++j) { for (int... 阅读全文
posted @ 2015-01-23 20:32 CoderInCV 阅读(150) 评论(0) 推荐(0) 编辑
摘要:算法思想:A[i]插入到已排序好的A[0,1,2,...i-1]的过程为将A[i]与已排序好的元素比较,找到其应插入的位置,将其后的元素后移一位。循环这一过程即可完成排序⒈ 从第一个元素开始,该元素可以认为已经被排序⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描⒊ 如果该元素(已排序)大于新... 阅读全文
posted @ 2015-01-23 20:10 CoderInCV 阅读(152) 评论(0) 推荐(0) 编辑
摘要:基本思想:二分法的一个前提是序列已经是有序的,然后将待查找值与序列的中点比较。根据比较结果,选择下一步比较的部分。二分查找(binary search)就是一个不断重复这一查找过程,直到找到这个值。算法复杂度:O(lgn)算法实现:一:迭代法int bin_search_iteration(int ... 阅读全文
posted @ 2015-01-23 19:57 CoderInCV 阅读(569) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示