順序表中的元素逆置
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 1024
typedef struct
{
int data[MAXSIZE];//存儲順序表中的元素
int len;//順序表長
}SeqList;//順序表類型
SeqList *Init_SeqList()//順序表初始化
{
SeqList *L;
L=(SeqList*)malloc(sizeof(SeqList));
L->len=0;
return L; //傳回指向順序表的指針L
}
void CreatList(SeqList **L)//建立順序表
{
int i,n;
printf("Input length of List:");
scanf("%d",&n);
printf("Input elements of List:\n");
for(i=1;i<=n;i++)
scanf("%d",&(*L)->data[i]);
(*L)->len=n;
}
void Coverts(SeqList *A) //将順序表中的元素逆置
{
int i,n;
int x;
n=A->len;//n為線性表的長度
for(i=1;i<n/2;i++)//實作逆置
{
x=A->data[i];
A->data[i]=A->data[n-i+1];
A->data[n-i+1]=x;
}
}
void print(SeqList *L)//順序表的輸出
{
int i;
for(i=1;i<=L->len;i++)
printf("%2d",L->data[i]);
printf("\n");
}
int main()
{
SeqList *A;
A=Init_SeqList();//順序表初始化
printf("Creat List:\n");
CreatList(&A);//建立順序表
print(A);//輸出順序表
Coverts(A);//逆置
print(A);
}
/*
4
1 2 3 4
*/