顺序表-部分元素逆置

在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>
#define max 1000000
typedef  int ElemType;
typedef struct
{
     ElemType *elem;    //存储空间基地址
     int length;    //当前长度
     int listSize;  //当前分配的存储容量, 以sizeof(ElemType)为单位
 }SqlList;

 void creat(SqlList &L, int len)
 {
     L.elem = (ElemType*)malloc(max*sizeof(ElemType));
     L.length = len;
     L.listSize = max;
     int i;
     for(i=0; i<L.length; i++)
     {
         scanf("%d", &L.elem[i]);
     }
 }
 void move(SqlList &L, int first, int last)
 {
     int i = 0, j, t;
     for(j=first; j<=(first+last)/2; j++)
     {
         i++;
         t = L.elem[j-1];
         L.elem[j-1] = L.elem[last-i];
         L.elem[last-i] = t;
     }
 }
 void print(SqlList &L, int n)
 {
     int j;
     for(j=0; j<n-1; j++)
     {
         printf("%d ", L.elem[j]);
     }
      printf("%d\n", L.elem[j]);
 }
 int main()
 {
     int n, m, size;
     SqlList L;
     scanf("%d", &size);
     while(size--)
     {
        scanf("%d%d", &n, &m);
        creat(L, n);
        move(L, 1, n);
        // print(L, n);
        move(L, 1, n-m);
        // print(L, n);
        move(L, n-m+1, n);
        print(L, n);
     }
     return 0;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值