天天看點

順序表中的元素逆置C語言代碼實作順序表中的元素逆置

順序表中的元素逆置

#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
*/
           

繼續閱讀