#ifndef SEQLINK_H_INCLUDED
#define SEQLINK_H_INCLUDED
typedef struct node
{
int data;
int len;
}seqLink;
void seqLinkInit(seqLink *L)//初始化順序表
{
L->len = 0;
}
void createSeqLink(seqLink *L,int n)//建立順序表
{
int i;
printf("請輸入數據:\n");
for(i = 0; i < n; i++)
{
scanf("%d",&L[i].data);
}
L->len = n;
}
void outPut(seqLink *L)//順序表輸出
{
int i;
// printf("L中的元素爲:\n");
for(i = 0; i < L->len; i++)
{
printf("%d\t",L[i].data);
if((i+1) % 4 == 0)
printf("\n");
}
printf("\n");
}
int get(seqLink *L,int i)//取順序表的第i個元素
{
return L[i].data;
}
void emptySeqLink(seqLink *L)//清空順序表
{
L->len = 0;
}
void inverseOne(seqLink *L, seqLink *B)//順序表直接逆置
{
int i;
int length = L->len;
for(i = 0; i < length; i++)
{
B[length - i - 1].data = L[i].data;
}
B->len = length;
}
void inverseTwo(seqLink *L)//順序表間接逆置
{
int i;
int temp;
int length = L->len;
for(i = 0; i < length / 2; i++)
{
temp = L[i].data;
L[i].data = L[length - i -1].data;
L[length - i -1].data = temp;
}
}
#endif // SEQLINK_H_INCLUDED
主函數
#include <stdio.h>
#include <stdlib.h>
#include"seqLink.h"
int main()
{
seqLink *LA, *LB;
int n;
printf("請輸入n:\n");
scanf("%d",&n);
LA = (seqLink *)malloc(n*sizeof(seqLink));
seqLinkInit(LA);
createSeqLink(LA,n);
printf("逐個輸出元素爲:\n");
outPut(LA);
printf("間接逆置爲:\n");
LB = (seqLink *)malloc(sizeof(seqLink));
seqLinkInit(LB);
inverseOne(LA,LB);
outPut(LB);
printf("\n直接逆置爲:\n");
inverseTwo(LA);
outPut(LA);
emptySeqLink(LA);
emptySeqLink(LB);
return 0;
}