|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- typedef int DataType;
- void Reverse(DataType A[], int left, int right, int arraySize) {
- //假定在一位数组中放入两个顺序表(a1-am和b1-bn),要求变换成b1-bn,a1-am
- if (left >= right || right >= arraySize)
- return;
- int mid = (left + right) / 2;
- for (int i = 0; i <= mid - left; i++) {
- DataType temp = A[left + i];
- A[left + i] = A[right - i];
- A[right - i] = temp;
- }
- }
- void Exchange(DataType A[], int m, int n, int arraySize) {
- Reverse(A, 0, m + n - 1,arraySize);
- Reverse(A, 0, n - 1, arraySize);
- Reverse(A, n, m + n - 1, arraySize);
- }
复制代码
如代码所示,首先想问一下typedef int DataType;语句是什么意思,其次是arraySize是数组大小吗?
- #include"tst1.cpp"
- int main()
- {
- SqList *L;
- ElemType e;
- ElemType value;
- DataType A[8] = {0};
- printf("顺序表的基本运算如下:\n");
- printf("初始化顺序表L\n");
- InitList(L);
- printf("依次插入1-8八个元素\n");
- ListInsert(L, 1, '1');
- ListInsert(L, 2, '2');
- ListInsert(L, 3, '3');
- ListInsert(L, 4, '4');
- ListInsert(L, 5, '5');
- ListInsert(L, 6, '6');
- ListInsert(L, 7, '7');
- ListInsert(L, 8, '8');
- printf("输出顺序表L:"); DispList(L);
- printf("顺序表L的长度:%d\n", ListLength(L));
- printf("变换顺序表顺序\n");
- Exchange(A, 5, 8, 9);
- printf("输出顺序表L:"); DispList(L);
- printf("释放顺序表L\n");
- DestroyList(L);
- return 1;
- }
复制代码
这个是我的调用过程,但是输出结果有问题
如图,按照逻辑应该输出67812345,但是结果不太对
求大佬指点
Exchange(A, 5, 8, 9);请问你对A数组用函数Exchange 跟我L有什么关系 你显示的都是L
|
|