第11章 算法设计与分析-数据结构与算法(C++版)(第2版)-游洪跃-清华大学出版社

合集下载

《数据结构与算法C》PPT课件_OK

《数据结构与算法C》PPT课件_OK
• 空表:表内无元素(长度为0)的表称为空表。 • 表头:称Ls的第1个元素为Ls的表头。 • 表尾:称Ls中除去表头后其余元素构成的表为表尾。
显然,表尾一定是表,但表头不一定。
• 递归表: 若表Ls中某成员含有自己(即Ls),则称Ls为递归 表。
5
• 深度:Ls的深度Depth(Ls)递归地定义为:
• 元素共享性:在同一广义表中,任一元素(单元素或 表)均可以出现多次,同一元素的多次出现都代表的是 同一个目标,可以认为它们是共享同一目标。对多次出 现的元素,显然可以从不同的位置(路径)访问它们, 因此,具有该特性的表也称再入表(Reentrant List)。
13
§8.1.5 基本操作
广义表兼有线性表和树的 特性,因此,它的基本操 作也兼有线性表和树的一 些操作,此外,还有一些 特有操作,如求表头和表 尾。 求表头和表尾是广义表的 重要操作,通过它们,可 以按递归方法处理广义表, 也可实现一般访问。著名 的人工智能语言LISP和 Prolog其实就是以广义表为 数据结构,通过求表头和 表尾实现对象的操作。
8
错误!未找到引用源。给出了广义表图的一个例子。
显然,广义表图中画出了广义表的所有结点。图中结点
之间的边表示“包含/属于”关系,即若结点A到B有边, 则表示B是A的子表之一(A包含B)。
广义表图与树相似,只是
L
由于存在共享元素,使得
广义表图中某些结点
A
C
DE
的“父亲”不唯一。
B
c de
ab
图 8-0 广义表L(见下式) 的逻辑图L(A(B(a,b)), C(B(a,b), c), D(c,d,e), E(e) )
12
• 元素分层性:如果将广义表中不同出现的元素看作不 同的元素,则广义表是层次结构,即对任一元素,它只 直属层号比它大1的元素。不过,广义表的层次性与树 不同,在树中,任一元素只直属一个元素。

《数据结构与算法 》课件

《数据结构与算法 》课件
人工智能领域中,数据结构对于机器学习、深度学习等算法的效率至关重要。例如,使用决策树、神经网络等数据结构进行分类、预测等任务。
数据结构在人工智能中的优化可以提升算法的效率和准确性,例如通过使用哈希表实现快速特征匹配,提高图像识别速度。
THANK YOU
定义与分类
添加边、删除边、查找路径等。
基本操作
图中的边可以是有方向的,也可以是无方向的。节点之间可以有多种关系,如邻接、相连等。
特性
社交网络、交通网络、路由协议等。
应用场景
05
排序与查找算法
冒泡排序:通过重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
详细描述
链表的优势在于可以动态调整大小,插入和删除操作仅需修改指针,时间复杂度为O(1)。但链表访问特定元素需要从头部遍历,效率较低。
VS
栈和队列是特殊的线性数据结构,它们遵循特定的操作规则。栈遵循后进先出(LIFO)原则,队列遵循先进先出(FIFO)原则。
详细描述
栈用于保存按照后进先出顺序访问的数据元素,常见的操作有压栈、弹栈和查看栈顶元素。队列用于保存按照先进先出顺序访问的数据元素,常见的操作有入队、出队和查看队首元素。
03
线性数据结构
数组是线性数据结构中的基本形式,它以连续的内存空间为基础,用于存储固定长度的同类型元素。
数组具有固定的长度,可以通过索引直接访问任意元素。它适合于需要快速访问数据的场景,但插入和删除操作需要移动大量元素,效率较低。
详细描述
总结词
总结词
链表是一种线性数据结构,它通过指针链接各个节点,节点包含数据和指向下一个节点的指针。

C面向对象程序设计教程课后习题答案游洪跃PPT课件

C面向对象程序设计教程课后习题答案游洪跃PPT课件
一、选择题
1.下列语句中,错误的是

A)const int buffer = 256;
B)const int temp;
C)const double *point;
D)double * const pt = new double(5.5);
解析:修饰符const声明的常量只能被读取,该常量必须在声 明时进行初始化,并且它的值在程序中不能改变。选项B)没 有初始化,错误。选项C)定义了一个指向const double的指 针,其意义为指针 point指向的变量不能通过指针point来改变, D)中表示指针pt是常量指针,已在声明时进行了初始化。 答案:B
// 使用命名空间std
int Max(int x, int y)
// 求x,y的最大值
{ห้องสมุดไป่ตู้
return x > y ? x : y;
// 返回x,y的最大值
}
int Max(int x, int y, int z) // 求x,y,z的最大值
{
int m = x > y ? x : y;
// x,y的最大值
#include <iostream>
// 编译预处理命令
using namespace std;
// 使用命名空间std
int Min(int a[], int n)
// 求n个整型数据的最小值
{
int m = a[0], i;
// 临时变量
for (i = 1; i < n; i++)
{
// 依次比较求最小值
// 使用命名空间std
void Swap(int &x, int &y) // 交换x,y的值

数据结构与算法第2版

数据结构与算法第2版
版说明 前言 第1章绪论 1.1引言 1.1.1为什么要学习数据结构 1.1.2数据结构课程的内容 1.2数据结构的概念 1.2.1基本概念和术语 1.2.2抽象数据类型 1.3算法 1.3.1算法及其特征
文章节选
第1章绪论
计算机科学是一门研究数据表示和数据处理的科学。数据就是对客观事务采用的计算机能够识别、存储和处 理的符号表示。简言之,数据是计算机化的信息,是计算机可以直接处理的最基本和最重要的对象。无论是进行科 学计算或数据处理、过程控制,还是对文件的存储和检索等计算机应用,都是对数据进行加工处理的过程。计算机 对数据的处理并不是简单地将数据堆积在一起,而是使其具有某种内在的。因此,为了更有效地处理数据,设计出 好的算法,编写出结构清晰而且效率高的程序,必须研究数据的特性、数据间的相互关系及其对... [显示全部]
推荐
本书第1版很受广大读者欢迎,作者受了很大的鼓舞,结合近些年新的教学经验,改版中在第1版基础上强调侧 重实用、保证适当深度,同时配套了习题解答与实验指导(数据结构与算法习题解答与实验指导,书号978-7-111-5)。为方便教学,本书配套了电子课件,可从上下载
谢谢观看
数据结构与算法第2版
机械工业出版社出版的图书
01 内容简介
03 文章节选
目录
02 图书目录 04 推荐
《数据结构与算法第2版》是2008年7月机械工业出版社出版的图书,作者是张晓莉、王苗、罗文劼。
内容简介
本书详纽讲述了线性结构、树结构和图结构中的数据表示及数据处理的方法,对查找和排序两种重要的数据处 理进行了详细的探讨。书中对各类数据结构的分析按照“逻辑结构-存储结构-基本运算的实现-时空性分析-实例” 的顺序进行讲述,算法全部采用C语言描述,很容易转换成程序。在每章的后面都配有不同类型的习题:有加强概念 理解的选择题、判断题,有帮助理解算法思想的简答题,也有培养算法设计能力的算法设计题。本书语言叙述通俗 易懂,由浅入深,算法可读性好,应用性强,书中配有大量算法设计的例子,便于读者理解和掌握数据结构中数... [显示全部]

数据结构+算法+第二版+课后+答案+部分

数据结构+算法+第二版+课后+答案+部分

算法与数据结构课后习题答案第一章一、选择题CCADB二、判断题FFFFT三、简答题5.(1) n-1 (2)1 (3)n(n+1)/2 (4)if(a<b) n , a++ n/2(5)if(x>100) 11*100-1, x-=10;y-- 1006.(1)O(log3n) (2) O(n2) (3) O(n2)第二章一、选择题1~5: AADCD 6~10:BCBAD 11~12:BD二、判断题1~5:FTFTF 6~10:TFTTF 11~12:FF三、算法设计题1.#define arrsize 100int Inserseqx(datatype A[ ], int *elenum, datatype x ) { int i=*elenum-1;if(*elenum==arrsize) return 0;while(i>=0&&A[i]>=x ){ A[i+1]=A[i]; i--; }A[i+1]=x; *elenum ++;return 1;}6.typedef struct node{ dataype data;struct node *next;}LNode, *LinkList;int Inserlinkx(LinkList L,datatype x ){ LNode *p=L,*s;s=(LNode *)malloc(sizeof(LNode));if(!s) return 0;s->data=x;while(p->next&&p->next->data<=x) p=p->next;s->next=p->next; p->next=s;return 1;}第三章一、选择题1~5:CBDBB 6~10: CBDCC二、判断题1~5:TTTFF三、简答题4. 共14种顺序:4321 3214 3241 3421 2134 2143 23142341 2431 1234 1243 1324 1342 1432四、简答题1.#define MAXSIZE 1000typedef struct{datatype data[MAXSIZE];int top;}SeqStack;SeqStack *Init_SeqStack(); /*栈初始化*/int Empty_SeqStack(SeqStack *s);/*判栈空*/int Push_SeqStack(SeqStack *s,datatype x); /*x入栈*/ int Pop_SeqStack(SeqStack *s,datatype *x); /*出栈*/int judgehuiwen(char *str)/*返回1表示是回文,否则不是*/{ SeqStack *s=Init SeqStack( );char *ch=str,ch1;while(*ch!=’@’){Push_SeqStack(s, *ch);ch++;}ch=str;while(!Empty_SeqStack(s)){ Pop_SeqStack(s,&ch1);if(*ch!=ch1) return 0;ch++;}return 1;}5.#define MAXSIZE 1000typedef struct{datatype data[MAXSIZE];int top;}SeqStack;SeqStack *Init_SeqStack(); /*栈初始化*/int Empty_SeqStack(SeqStack *s);/*判栈空*/int Push_SeqStack(SeqStack *s,datatype x); /*x入栈*/ int Pop_SeqStack(SeqStack *s,datatype *x); /*出栈*/ int judge(char *str)/*返回1表示是匹配,否则不是*/{ SeqStack *s=Init SeqStack( );char *ch=str,ch1;while(*c h!=’\0’){ if(*ch==’(‘) Push_SeqStack(s, *ch);else if(*ch==’)‘)if(!Pop_SeqStack(s,&ch1)) return 0;ch++;}if(Empty_SeqStack(s)) return 1;else return 0;}4.typedef struct node{ dataype data;struct node *next;}Lqnode, *LqList;置空:LqList Init_lq(){ LqList rear=(LqList *)malloc(sizeof(LqList)); rear->next=rear;return rear;}入队:int in_lq(LqList *rear, datatype x){ Lqnode *p=(LqList *)malloc(sizeof(LqList)); if(!p) return 0;p->data=x;p->next=*rear->next; *rear->next=p; *rear=p; return 1;}出队:int out_lq(LqList *rear, datatype x){ Lqnode *p;if(*rear->next==*rear) return 0;p=*rear->next->next;if(p==*rear){*rear=*rear->next;*rear->next=*rear;} else *rear->next->next=p->next;free(p);return 1;}第四章一、选择题1-3:CBA 4:DAB 5:CCC 6:C二、判断题FTFFFFF三、简答题2.4. k=i+j-2+(i+1)%2 或k=i+j-1+i%26.第五章一、选择题:1~5:CCBBB 6~10:CBDAD 11~15:DCBDB3 5 6 7 98 13 17二、判断题:1~5:FTFFT 6~10:FFFTF 11~15:TFTFF 16~20:FTFFT 三、简答题:((2)4、条件:森林中既没有孩子也没有右边的兄弟的结点11. 最大值:2h-1 最小值:2h-116.0.31 0.16 0.10 0.08 0.11 0.20 0.04 0.12 0.21 0.28 0.410.59a b c d e f ga:01 b:001 c:110 d:0000 e:111 f:10 g:0001四、算法设计题:typedef struct bitnode{ datatype data;struct bitnode *lchild, *rchild;}BiTNode, *BiTree;1.计算结点数目int counttotal(BiTree bt){ if(bt==NULL) return 0;return counttotal(bt->lchild)+counttotal(bt->rchild)+1;}计算度为1的结点数目:int countdegree1(BiTree bt){ if(bt==NULL) return 0;if( bt->lchild==NULL&& bt->rchild==NULL) return 0;if( bt->lchild==NULL|| bt->rchild==NULL)return countdegree1(bt->lchild)+ countdegree1(bt->rchild)+1; return countdegree1(bt->lchild)+ countdegree1(bt->rchild);}3.求深度;int depth(BiTree bt){ int ld,rd;if(bt==NULL) return 0;ld= depth(bt->lchild); rd=depth(bt->rchild);if( ld>=rd) return ld+1;return rd+1;}第6章作业讲评一、选择题1-4:BABC 5:BD 6-10:DBACB二、判断题1-5:FTTFF 6-10:TTFFT 11-15:FTFFF三、简答题1.(1)ID(1)=2 OD(1)=1ID(2)=2 OD(2)=2ID(3)=1 OD(3)=3ID(4)=3 OD(4)=0ID(5)=2 OD(5)=3ID(6)=1 OD(6)=2(2)0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0(3) (4)54 3 2 1 0 54 3 2 1 0(5) 2. (1)0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0(2)(4)(5)v1 v2 v3 v4 v5 v6 v73. 邻接矩阵表示图时,与顶点个数有关,与边的条数无关。

全套电子课件:数据结构与算法(第2版)

全套电子课件:数据结构与算法(第2版)
从a[i]到a[n-1]中选出最小元素a[k]; 使a[k]与a[i]交换; }
24
示例1-1 自然选择排序算法
for(i=0;i<n-1;i++) { k=i;
for(j=i+1;j<n;j++)if(a[j]<a[k])k=j; w=a[i]; a[i]=a[k]; a[k]=w; }
真程序段
O(1)
常数阶——最快
O(logn)
结束
28
示例1-2 二分查找(binary search)
(3)伪代码
left=0,right=n-1; while (left<=right)
{ if(x>a[mid]) 没找到x,返回-1; mid=(left +right)/2; if(x==a[mid]) 找到x,返回x的下标mid; if(x<a[mid])right=mid-1; else left=mid+1; }
步骤5)如果i等于n-1,则算法结束; 否则,转步骤2。
22
示例1-1 自然选择排序算法
开始
(2)流图
i=0
从 a[i]至 a[n-1]选出最小元 a[k]
交换 a[i]与 ak]
i=i+1

i==n-1?
是 结束
23
示例1-1 自然选择排序算法
(3)伪代码 for(i=0;i<n-1;i++) {
,对算法给定的初始量 输出:算法有一个或多个输出,即与输入有某个特
定关系的量,简单地说就是算法的最终结果
15
1.1.3 算法的概念
2.算法、数据结构与程序的关系

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

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

数据结构、算法与应用 c++语言描述原书第2版《数据结构、算法与应用》是一本经典的书籍,它系统地讲解了数据结构与算法的基本概念,并结合c++语言进行了详细描述。

书中内容丰富,深入浅出地解释了各种数据结构和算法的实现原理,以及它们在实际应用中的具体运用。

在这篇文章中,我将从多个角度对《数据结构、算法与应用》这本书进行全面评估,帮助你更深入地理解这一重要主题。

第一部分:数据结构与算法基础1. 数据结构的基本概念在《数据结构、算法与应用》这本书中,作者首先对数据结构的基本概念进行了详细介绍。

数据结构是指数据的组织、管理和存储的方式,它对于提高程序的效率和性能至关重要。

书中通过丰富的实例和图表,让读者更直观地理解了各种数据结构的特点和应用场景。

2. 算法的设计与分析除了数据结构,算法也是编程中不可或缺的一部分。

《数据结构、算法与应用》这本书详细介绍了算法的设计与分析方法,包括递归、动态规划、贪心算法等。

通过对各种经典算法的详细讲解,读者可以更好地理解算法的精髓,提高自己的编程水平。

第二部分:C++语言描述1. C++语言的特点与优势在书中,作者结合C++语言对数据结构和算法进行了描述和实现。

C++语言作为一种高级编程语言,具有强大的面向对象特性、丰富的库函数和高效的性能。

通过使用C++语言,读者可以更轻松地理解和实现各种数据结构和算法,提高编程效率。

2. 数据结构与算法在C++中的实现《数据结构、算法与应用》这本书还着重介绍了在C++语言中如何实现各种数据结构和算法。

通过对C++语言的详细讲解和实例演示,读者可以更直观地理解数据结构与算法在实际编程中的应用,并且可以参考这些实现代码进行自己的实践操作。

总结与回顾《数据结构、算法与应用》这本书通过对数据结构、算法和C++语言的深入探讨,为读者提供了全面的学习和实践指导。

通过系统地介绍了数据结构与算法的基本概念、C++语言的特点与实现方法,读者可以更全面、深入地理解这一重要主题,并且可以通过学习书中的实例代码,提高自己的编程水平。

C++程序设计(第2版下)清华出版社ppt

C++程序设计(第2版下)清华出版社ppt
17
11.3.2 有成员对象的派生类的构造函 数
类的数据成员中除了一般的数据类型int、float、char,还可以包含类 对象,称为成员对象或子对象,即对象中的对象。 有成员对象的派生类构造函数的一般语法格式为: <派生类名>(<构造函数总参数表>):<基类构造函数>(<参数表1>),<成 员对象名>(<参数表2>)... { <派生类中成员初始化> }; 这里要注意的是,<参数表1>和<参数表2>中的参数都是来自于<构造 函数总参数表>。 执行派生类构造函数的顺序是: (1)调用基类构造函数,对基类数据成员初始化。 (2)调用成员对象构造函数,对成员对象数据成员初始化。 (3)再执行派生类构造函数本身,对派生类数据成员初始化。
• 继承常用来表示类属关系,不能将继承理解为构成关系。当从已有的 类中派生出新的类时,可以对派生类做以下几种变化:
(1)全部或部分地继承基类的成员数据或成员函数。 (2)增加新的成员变量。 (3)增加新的成员函数。 (4)重新定义已有的成员函数。 (5)改变现有的成员属性。
6
11.1.2 单一继承
8
11.1.3 多重继承
为一个派生类指定多个基类,这样的继承结构被称为多重继承。 多重继承形成一个有向无环圆,图11.3所示为多重继承的示意 图。
基类A
基类B
派生类C
图11.3 多重继承示意图
9
用多个基类来派生一个类时,其一般格式为:
class类名:<Access>类名1,<Access>类名2,…<Access>类名n
12
11.2.2 私有继承
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cout << "编号为" << n << "的盘子从" << a << "塔座移到" << c <<"塔座" << endl; // 将编号为n的圆盘从a塔座移到c塔座
Hanoi(n - 1, b, a, c); // 将b塔座上编号为1至 // n-1的圆盘移到c塔座,a作辅助塔座
}
}
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第9页
{
if (n > 0) { // 递归条件成立
return n * Factorial( n - 1); // 递归调用
}
else
{ // 递归条件不成立
return 1;
// 递归结束
}
}
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第6页
例:Hanoi塔问题 传说在古代印度的贝拿勒圣庙里,安装着三根插至黄 铜板上的宝石针构成的三个塔座,印度主神梵天在其中一 根针上从下到上由大到小的顺序放64片金圆盘,称为梵塔, 然后要僧侣轮流值班把这些金圆盘移到另一根针上,移动 时必须遵守如下规则: (1)每次只能移动一个圆盘; (2)任何时候大圆盘不能压在小圆盘之上; (3)盘片只允许套在三个塔座中的某一个上。 这位印度主神号称如果这64个圆盘全部移到另一根 塔座上时,世界在一声霹雳中毁灭,Hanoi塔问题又称 “世界末日”a问题。下图为b3阶Hanoi塔的初c 始情况。
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第5页
例:用递归求阶乘n!。 阶乘可用迭代表示如下:
1
当n 0时
factorial(n) n factorial(n 1) 当n 0时
unsigned Factorial(unsigned n)
// 操作结果: 用递归求阶乘n!
void Hanoi(int n,char a,char b,char c) // 操作结果: 将a塔座上的直径由小到大,至上而下编辑为 // 1至n的n个盘子按规则移到塔座c上,塔座b可用作 // 辅助塔座 {
if (n > 0) { // 递归条件成立
Hanoi(n - 1, a, c, b); // 将a塔座上编号为1至 // n-1的圆盘移到b塔座,c作辅助塔座
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第11页
➢ 一般递归具有如下的形式: if (<递归结束条件>) { // 递归结束条件成立,结束递归调用 递归结束部分; } else { // 递归结束条件不成立,继续进行递归调用 递归调用部分; } 或 if (<递归调用条件>) { // 递归调用条件成立,继续进行递归调用 递归调用部分; } [else { // 递归调用条件不成立,结束递归调用 递归结束部分; }]
template <class ElemType> ElemType MaxHelp(ElemType elem[], int low, int high) // 操作结果: 返回elem[low..high]中的最大值 {
int mid = (low + high) / 2, maxLeft, maxRight, max; // 定时临时变量
(1)将1至n-1号圆盘从 a塔座轴移动至 b塔座轴,可 递归求解Hanoi(n-1, a, c, b);
(2)将 n号圆盘从 a塔座轴移动至 c塔座; (3)将1至n-1号圆盘从b塔座移动至c塔座,可递归求 解 Hanoi(n-1, b, a, c)。
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第8页
例:采用分治算法求最大值。
采用分治算法求数组elem[low..high]的最大 值问题,设mid=(low + high) / 2,可转化为求左 半区间elem[low..mid]的最大值maxLeft,右半区 间elem[mid + 1..high]的最大值maxRight,然后 再由maxLeft与maxRight求数组elem[low..high] 的最大值。
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第3页
一、递归算法
➢ 一个直接或间接地调用自身的算法 称为递归算法,一个直接或间接地 调用自身的函数称为递归函数。
➢ 在算法设计中,使用递归技术往往 能使函数的定义和算法的描述简捷 并且便于理解。
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第4页
二、分治算法
➢ 分治算法与软件设计的模块化方法类似。 为了解决一个大的问题,将一个规模为 n的问题分解为规模较小的子问题,这 些子问题互相独立并且和原问题相同。 分别解这些子问题,最后将将各个子问 题的解合并得到原问题的解
➢ 子问题与原问题相同,可以递归地使用 分治策略来解决
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第10页
数据结构与算法 (C++版)(第2版)
第11章 算法设 计与分析
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第1页
11.1 算法设计
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第2页
➢ 通常求解一准是算 法的正确性、可靠性、简单性和易 理解性。其次是算法所需要的存储 空间少和执行更快等因素。
1号圆盘 2号圆盘 3号圆盘
2021年2月3日星期三 数据结构与算法(C++版)(第2版), 清华大学出版社 第7页
a
b
c
1号圆盘
2号圆盘
3号圆盘
于n阶Hanoi塔问题Hanoi(n, a, b, c),当n=0时,没圆 盘可供移动,什么也不做;当n=1时,可直接将1号圆盘从 a塔座移动到c塔座上;当n=2时,可先将2号圆盘移动到b 塔座,再将1号圆盘移动到c塔座,最后将2号圆盘移动到c 塔座;对于一般n>0的一般情况可采用如下策略进行移动
相关文档
最新文档