作者:广东在线游戏网日期:
返回目录:游戏资讯
试写一算法,实现顺序表的来就地逆置
即利用原表的存储空间将线性表源(a1,a2,…,an) 逆置为(an,an-1,…,a1)。
◆2.21③ 试写百一算法,实现度顺序表的就地逆置,
即利用问原表的存储空间将线性表(a1,a2,…,an)
逆置为(an,an-1,…,a1)。
实现下列函数答:
void Inverse(SqList &L);
顺序表类型定义如下:
typedef struct {
ElemType *elem;
int length;
int listsize;
} SqList;
void Inverse(SqList &L)
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define listinserment 100
#define listadd 10
typedef int elemtype;
typedef struct{
elemtype *elem;
int listsize;
int length;
}sqlist;
void initlist(sqlist&L)
{if(!(L.elem=(elemtype*)malloc(listinserment*sizeof(elemtype))))
printf("顺序表未创建成功e69da5e887aae799bee5baa6e997aee7ad94335\n");
L.length=0;
L.listsize=listinserment;
}
void listinsert(sqlist&L,elemtype e)
{elemtype *q;
if(L.length>=L.listsize){
if(!(q=(elemtype*)realloc(L.elem,(L.listsize listadd)*sizeof(elemtype))))
printf("error\n");
L.elem=q;
L.listsize=L.listsize listadd;
}
L.elem[L.length]=e;
L.length ;
}
void print(sqlist L)
{int i;
for(i=0;i<L.length;i )
printf("%d",L.elem[i]);
}
void nizhi(sqlist&L)
{ int t;
for(int i=1;i<=(L.length/2);i )
{ t=L.elem[i-1];
L.elem[i-1]=L.elem[L.length-i];
L.elem[L.length-i]=t;}
}
void main()
{sqlist L;
char ch;
int e;
initlist(L);
do{
scanf("%d",&e);
listinsert(L,e);
}while((ch=getchar())!='\n');
nizhi(L);
print(L);
}