⼩练习 逆置 数组实现和链表实现
1.使⽤指针将数组中的元素按照逆序排放
/*
思路:
1.输⼊数组数量
2.⽤display_array显⽰数组元素
3.逆序函数reverse_array()
*/
#include<stdio.h>
#include<stdlib.h>
void Reverse_array(int *array, int n)
{
//利⽤⼀个临时变量temp⽤来交换位置
int temp;
for(int i=0; i<n/2; i++) //当遍历 ⼀半时停⽌遍历
{
temp=*(array+i);//注意*(array+i)和array[i]结果⼀样
*(array+i)=*(array+n-1-i);
*(array+n-1-i)=temp;
}
}
void Display_array(int *array, int n)
{
for(int i=0; i<n; i++)
printf("%d ", *(array+i));
printf("\n");
}
int main()
{
int n;
printf("请输⼊数组的数量:");
scanf("%d", &n);
int array[n];
for(int i=0; i<n; i++)
scanf("%d", &(*(array+i))); //从右往左原则. *(array+i)可以看作时array[i], &( *(array+i) )就是 &array[i]
//Display_array(array, n);
printf("您输⼊的数据是:");
Display_array(array, n);
Reverse_array(array,n);
printf("逆转后的数据是:");
Display_array(array, n);
return 0;
}
2.利⽤链表实现
/*链表逆转*/
/*思路:
1. 创建链表Create_Linklist(),并输⼊数据,
2. 链表逆转函数Reverse_Linklist()
3. 链表显⽰含数Display_Linklist()
4. 释放链表内存Delete_Linklist()
*/