数据结构之数组翻转的实现方法

 更新时间:2017年10月12日 08:44:18   作者:爱思考的小鸟  
这篇文章主要介绍了数据结构之数组翻转的实现方法的相关资料,这里用几种实现方法来实现这样的功能,需要的朋友可以参考下

数据结构之数组翻转的实现方法

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

1.用c语言实现的版本

#include<stdio.h> 
#define M 20 
 
void 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 20 
 
void 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); 
?> 

结果如下所示:

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • C语言实现在数组A上有序合并数组B的方法

    C语言实现在数组A上有序合并数组B的方法

    这篇文章主要介绍了C语言实现在数组A上有序合并数组B的方法,包含了数组操作的完整实现过程以及相应的代码分析与改进,具有不错的借鉴价值,需要的朋友可以参考下
    2014-09-09
  • C语言数据(整数、浮点数)在内存中的存储

    C语言数据(整数、浮点数)在内存中的存储

    之前对c语言数据存储一直不太明白,最近仔细研究了一番,所以下面这篇文章主要给大家介绍了关于C语言数据(整数、浮点数)在内存中存储的相关资料,需要的朋友可以参考下
    2021-06-06
  • QT设计秒表功能(跑步计时器)

    QT设计秒表功能(跑步计时器)

    这篇文章主要为大家详细介绍了QT设计秒表功能,跑步计时器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • C++利用容器查找重复列功能实现

    C++利用容器查找重复列功能实现

    本文将详细介绍c++容器简介,c++容器的比较 与操作实例,需要了解更多的朋友可以参考下
    2012-11-11
  • ubuntu修改gcc版本的操作方法

    ubuntu修改gcc版本的操作方法

    今天小编就为大家分享一篇ubuntu修改gcc版本的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • C++无锁队列的原理与实现示例

    C++无锁队列的原理与实现示例

    C++无锁队列是一种多线程编程技术,它可以在不使用锁的情况下实现线程安全的队列,本文就来详细的介绍一下C++无锁队列的原理与实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • C++实现中缀表达式转后缀表达式

    C++实现中缀表达式转后缀表达式

    这篇文章主要为大家详细介绍了C++实现中缀表达式转后缀表达式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C++头文件algorithm中的函数功能详解

    C++头文件algorithm中的函数功能详解

    这篇文章主要介绍了C++头文件algorithm中的函数功能详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • C/C++中获取数组长度的方法示例

    C/C++中获取数组长度的方法示例

    这篇文章主要介绍了C/C++中获取数组长度的方法,很实用的一种方法,需要的朋友可以参考下
    2014-08-08
  • C++中内存池和内存分配区Arena概念详解

    C++中内存池和内存分配区Arena概念详解

    在 C++ 中,内存分配区(Arena)通常指的是预先分配的一大块连续内存空间,这种方法的主要目的是提高内存分配和释放的效率,下面就跟随小编一起了解一下C++中内存池和内存分配区Arena相关概念吧
    2023-12-12

最新评论