顺序表移动

顺序表移动今天先讲两个简单的顺序表移动 今天要用到函数了 大家不会的赶紧复习复习哦 以 1 2 3 4 5 6 输出 2 3 4 5 6 1 为例

​​今天先讲两个简单的顺序表移动.(今天要用到函数了,大家不会的赶紧复习复习哦!)

不难看出目的就是把素1, 挪到最后面。

下面先讲两种简单的解决方案:

①   先把1存起来,再把数组每个素前移,最后把1填到最后面.

怎么前移呢??

a[0]=a[1];

a[1]=a[2];

   …

a[j]=a[j+1];

直到跑完数组.这个比较简单这里就不多讲了,直接附上代码吧:

#include<stdio.h>

void simplemove(int a[],int n)// //因为直接输出了,没有返回值,为void型

{

int j=0,x;

x=a[j];//把第一位存起来

for(j=0;j<n;j++)

           a[j]=a[j+1];//把后一位给前一位

a[j]=x;//把最后一位补上

}

int main(void)

{

int a[6]={1,2,3,4,5,6};

int i;

simplemove(a,6);//简单移动

for(i=0;i<6;i++)

           printf("%5d",a[i]);

return 0;

}

②把1依次和自己的下一位交换.

1 2 3 4 5 6

1和2交换 2 1 3 4 5 6

1和3交换 2 3 1 4 5 6

1和4交换 2 3 4 1 5 6

    …

1和6交换 2 3 4 5 6 1

{

x=a[j];

a[j]=a[j+1];

           a[j+1]=x;

}

这是一个最简单的交换算法,不懂得自己用笔画一画就会了.

直到跑完数组.这个也比较简单这里就不多讲了,直接附上代码吧:

#include<stdio.h>

void exchangemove(int a[],int n)//因为直接输出了,没有返回值,为void型

{

int j=0,x;

for(j=0;j<n;j++)//普通交换算法

{

           x=a[j];

           a[j]=a[j+1];

           a[j+1]=x;

    }

}

int main(void)

{

int a[6]={1,2,3,4,5,6};

int i;

exchangemove(a,6);//交换式移动

for(i=0;i<6;i++)

           printf("%5d",a[i]);

return 0;

}

​我是小纸人,谢谢大家.


今天的文章 顺序表移动分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-14 22:30
下一篇 2024-12-14 22:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/85960.html