顺序表移动

原创 2018年04月16日 22:56:56

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

以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;

}

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


在顺序表中插入和删除一个结点平均移动多少个结点

解析 在等概率情况下,顺序表中插入一个结点需要平均移动n/2个结点。删除一个结点需要平均移动(n-1)/2个结点。具体的移动次数取决于顺序表的长度n以及需插入或删除的位置i,i越近n,则所需移动...
  • xll1314521
  • xll1314521
  • 2017-07-17 10:06:42
  • 464

在顺序表中插入一个元素

之前在创建了一个顺序表的功能函数,这个没有疑问,测试没有错误,但是在接下来的做插入功能的时候发现插入的时候用模块写,不调用这个创建的函数,很难做到这个。该怎么实现这个“高内聚,低耦合”的原则。 #i...
  • u011046042
  • u011046042
  • 2014-12-14 15:04:45
  • 3672

顺序表_循环左移

顺序表的构造、插入、扩展、查找、删除、遍历这 6 种操作。一种新的操作:循环左移。...
  • qq_30043465
  • qq_30043465
  • 2016-05-25 18:08:01
  • 381

线性表的应用2(删除顺序表中的元素)

写一算法,从顺序表中删除自第i个元素开始的k个元素。 方法:循环控制删除即可 代码实现: #include #include #include #define OVERFLOW -2 #de...
  • PNAN222
  • PNAN222
  • 2016-04-05 18:48:32
  • 336

数据结构预算法---线性表继承链表

  • 2011年05月18日 18:47
  • 509KB
  • 下载

顺序表删除相同的元素

/*顺序表删除相同的元素 算法一:拿一个元素,依次与余下的元素进行比较,相同移动元素删除,缺点要进行大量的元素移动 算法二:一个元素与前j个不相同的元素进行比较,不相同则元素加入不同元素的区间,相...
  • u014558484
  • u014558484
  • 2016-07-22 10:43:09
  • 2008

PTA 6-2 有序顺序表的插入

6-2 有序顺序表的插入(10 分)本题要求实现递增顺序表的有序插入函数。L是一个递增的有序顺序表,函数Status ListInsert_SortedSq(SqList &L, ElemType e...
  • sensen426521
  • sensen426521
  • 2017-10-15 18:27:46
  • 192

顺序表删除最小值并由函数返回被删值

  • 2014年10月15日 22:53
  • 2KB
  • 下载

数据结构(2)线性表之顺序表

导言 抽象数据类型线性表定义如下 线性表的顺序表示和实现 顺序表特点 线性表顺序存储结构示意图 线性表的动态分配顺序存储结构 顺序表的插入和删除 插入 插入伪算法 算法动态演示 删除 删除算法的动态演...
  • YuYunTan
  • YuYunTan
  • 2016-03-12 23:08:22
  • 851

顺序表中的删除和插入

顺序表中的运算无非四种,增删改查: 增:即向顺序表中插入数据,大部分情况下都是向一个有序表中插入,要是无序的话就先排序。 删:删除顺序表中的一个或多个元素,通过数据覆盖来消除原来数据。 改:找到数据,...
  • castle_kao
  • castle_kao
  • 2016-12-06 15:34:38
  • 1415
收藏助手
不良信息举报
您举报文章:顺序表移动
举报原因:
原因补充:

(最多只允许输入30个字)