ACM程序设计竞赛II第一章.ppt

ACM程序设计竞赛II 肖明霞 数据结构 什么是数据结构? 数据结构的作用 计算机解决问题步骤: 具体问题抽象出数学模型 设计解该数学模型的算法 编写程序求解 数据结构仅仅是个工具! 问题一:移动小球 有一些小球,从左到右依次编号为1,2,3,...,n,你可以执行两种命令,其中A x y 表示把小球x移动到小球y的左边,B x y 表示把小球x移动到y的右边,指令保证合法,即x不等于y。 例如原始状态:1 2 3 4 5 6 执行A 1 4 后变为2 3 1 4 5 6 执行B 3 5 后变为2 1 4 5 3 6 输入小球个数n,指令条数m和m条指令,从左到右输出最后的序列。 样例输入 6 2 A 1 4 B 3 5 样例输出 2 1 4 5 3 6 方法一:数组实现 问题:数据移动太多,循环太长,超时。 方法二:链表实现 效率较高 问题:双向链指针不好操作,程序不好写 方法三:用整数实现链式操作? #includestdio.h const int MAXN = 1000; int n, A[MAXN]; int find(int X) { for(int i = 1; i = n; i++) if(A[i] == X) return i; return 0; } void shift

文档评论(0)

1亿VIP精品文档

相关文档