将一个顺序表的前三个元素移到最后

简介: 将一个顺序表的前三个元素移到最后

//1.第一个(两个其实差不多,只不过我比较喜欢用后者)

#include <stdio.h>
void move(int *a,int n)//指针a接收数组首元素的地址
{
    int i,j,X;
    int *p=a;//指针p也指向a数组
    for(i=0;i<3;i++)
    {
        X=*a;//*a代表数组的第一个元素
        for(j=1;j<n;j++)
        {
            *(p+j-1)=*(p+j);
        }
        *(p+j-1)=X;
        
    }
}
int main (void)
{    int a[8]={3,2,5,8,4,7,6,9};
    int i;
    move(a,8);
    for(i=0;i<8;i++)
        printf("%5d",a[i]);
    printf("\n");
    return 0;
}

//第二个

#include <stdio.h>
void move(int *a,int n)//指针a接收数组首元素的地址
{
    int i,j,X;
    for(i=0;i<3;i++)
    {
        X=a[0];
        for(j=1;j<n;j++)
        {
            a[j-1]=a[j];
        }
        a[j-1]=X;
        
    }
}
int main (void)
{    int a[8]={3,2,5,8,4,7,6,9};
    int i;
    move(a,8);
    for(i=0;i<8;i++)
        printf("%5d",a[i]);
    printf("\n");
    return 0;
}
相关文章
|
1月前
|
算法
顺序表应用4:元素位置互换之逆置算法
顺序表应用4:元素位置互换之逆置算法
|
17天前
|
C++
C++数组中插入元素。
C++数组中插入元素。
|
1月前
|
存储
三种方法实现获取链表中的倒数第n个元素
三种方法实现获取链表中的倒数第n个元素
26 0
|
11月前
|
Java
java数据结构24:删除数组中的元素(链表)
给定N个整数,将这些整数中与M相等的删除 假定给出的整数序列为:1,3,3,0,-3,5,6,8,3,10,22,-1,3,5,11,20,100,3,9,3 应该将其放在一个链表中,链表长度为20 要删除的数是3,删除以后,链表中只剩14个元素:1 0 -3 5 6 8 10 22 -1 5 11 20 100 9 要求:必须使用链表,不允许使用数组,也不允许不删除元素直接输出
66 0
|
1月前
|
算法
顺序表应用4-2:元素位置互换之逆置算法(数据改进)
顺序表应用4-2:元素位置互换之逆置算法(数据改进)
|
1月前
|
算法
顺序表应用1:多余元素删除之移位算法
顺序表应用1:多余元素删除之移位算法
|
10月前
删除顺序表中指定值的所有元素
顺序表是一种使用数组实现的数据结构。删除顺序表中指定值的所有元素,可以按照以下步骤进行操作:
231 1
顺序表头插头删尾插尾删以及任意位置的插入删除和顺序表中的查找
顺序表头插头删尾插尾删以及任意位置的插入删除和顺序表中的查找
|
10月前
【 LeetCode题解 】203. 移除链表元素
【 LeetCode题解 】203. 移除链表元素 当val在链表中间时,遇到val就删除链表中和val相同的节点,并链接val后面的节点。 当val在链表开头时,或者连续的时候,我们将链表其实的head(头)向后移动,直到找到不是val的节点,作为开始的头。
43 0
|
算法 Java
优雅的删除链表元素
大家好,我是王有志。今天我们尝试使用多种方法,“优雅”的实现链表的删除方法。
114 0
优雅的删除链表元素