数据结构示例之数组翻转

来源:互联网 发布:tensorflow 下载安装 编辑:程序博客网 时间:2024/05/21 12:02

以下为实现数组翻转的方法:

1.用c语言实现的版本

#include<stdio.h>#define M 20void fun(int *x,int n){    int *i, *j, *p, m=n/2;    i = x;    j = x+n-1;    p = x+m;    for( ; i<p; ++i,--j)    {        int t = *i;        *i = *j;        *j = t;    }}void main(){    int i,a[M],n;    printf("Enter n(n<20):\n");    scanf("%d",&n);    printf("The original array:\n");    for(i=0; i<n; ++i) {        scanf("%d", a+i);}    fun(a,i);    printf("\nThe array inverted:\n");    for(i=0; i<n; ++i) {        printf("%d  ", *(a+i));}printf("\n");}

2. 用c++实现的版本

#include<iostream>#define M 20void fun(int *x,int n){    int *i, *j, *p, m=n/2;    i = x;    j = x+n-1;    p = x+m;    for( ; i<p; ++i,--j)    {std::swap(*i,*j);    }}void main(){    <span style="white-space:pre"></span>int i,a[M],n;<span style="white-space:pre"></span>std::cout<<"Enter n(n<20):"<<std::endl;std::cin>>n;std::cout<<"The original array:"<<std::endl;    <span style="white-space:pre"></span>for(i=0; i<n; ++i) {std::cin>>*(a+i);}   <span style="white-space:pre"></span> fun(a,i);std::cout<<std::endl<<"The array inverted:"<<std::endl;    <span style="white-space:pre"></span>for(i=0; i<n; ++i) {        std::cout<<*(a+i)<<" ";}std::cout<<std::endl;}
效果图如下:



3. 用PHP实现的版本

<?php$arrOrigin = array(1,2,3,4,5,6,7,8,9,10);$arrReverse = array_reverse($arrOrigin);echo '原始数组:';print_r($arrOrigin);echo '<br/>';echo '翻转后的数组:';print_r($arrReverse);?>
结果如下所示:



0 0