简单顺序表应用
来源:互联网 发布:java 泛型使用 编辑:程序博客网 时间:2024/04/29 17:18
简单顺序表应用
在书上做到一道比较有趣的题,这道题很难度不大,本算法复杂度O(m+n)。注意下标是从1开始的Orz。题目如下: 已知在一维数组A[m+n]中依次存放着两个顺序表(a1,a2,a3,……,am)和(b1,b2,b3,……,bn)。编出一个算法,将数组中两个顺序表 的位置互换,即将(b1,b2,b3,……,bn)放在(a1,a2,a3,……,am)的前面。
#include <iostream>using namespace std;#define ElemType int#define MAXSIZE 100typedef struct{ ElemType data[MAXSIZE]; int length;}SqList;void Exchange(SqList &A, int n, int m){ int i, j, temp; while(m != n){ if(m < n){ for(i = n, j = m + n; j > n; i--, j--){ temp = A.data[i]; A.data[i] = A.data[j]; A.data[j] = temp; } n -= m; } else if(m > n){ for(i = n, j = m + n; i > 0; i--, j--){ temp = A.data[i]; A.data[i] = A.data[j]; A.data[j] = temp; } m -= n; } } for(i = 1; i <= n; i++){ temp = A.data[i]; A.data[i] = A.data[n + i]; A.data[n + i] = temp; }}int main(){ SqList L; int i, n, m; cin>>n>>m; for(i = 1; i <= n + m; i++) cin>>L.data[i]; for(i = 1; i <= n + m; i++) cout<<L.data[i]<<' '; cout<<endl; Exchange(L, n, m); for(i = 1; i <= n + m; i++) cout<<L.data[i]<<' '; cout<<endl; return 0;}
0 0
- 简单顺序表应用
- SeqList.h (顺序表及其简单应用)
- SeqStack.h (顺序栈及简单应用)
- 顺序表应用实例
- 顺序表应用举例
- 顺序表应用举例
- 顺序表应用
- 顺序表应用-奇偶
- 顺序表的应用
- 顺序表的应用
- 顺序表的应用
- 顺序表的应用
- 数据结构顺序表应用
- 顺序表应用
- 顺序表应用 2
- 顺序表及其应用
- 简单顺序链表
- 顺序表 简单功能
- 我读java编程思想---java访问控制符
- 编写代码模拟三次密码输入的场景。
- profile、服务、特征、属性之间的关系
- JavaSE 09 面向对象(下)
- mac上用xcode开发ios 程序时候的一些小技巧(一)
- 简单顺序表应用
- C语言-手把手教你写贪吃蛇AI(下)
- AT指令使用函数
- PTA 5-33 有理数加法
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99
- 安卓应用签名之后安装失败
- Apache设置禁止访问网站目录
- 458. Poor Pigs
- 转载自:http://www.cnblogs.com/chenyadong/archive/2011/10/25/2223610.html