-
题目要求:试写一算法实现顺序表的就地逆置,即利用原表的存储空间将线性表 ( a 1 , a 2 , … , a n ) (a_1,a_2,dots,a_n) (a1,a2,…,an)逆置为 ( a n , a n − 1 , … , a 1 ) (a_n,a_{n-1},dots,a_1) (an,an−1,…,a1)。
-
逆置代码
void ListReverse(SqList *L) { int i; int temp; for(i=0;i
length/2;i++) { temp=L->data[i]; L->data[i]=L->data[L->length-i-1]; L->data[L->length-i-1]=temp; } } -
完整程序
#include
#define MAXSIZE 20 typedef struct { int data[MAXSIZE]; int length; }SqList; void ListTraverse(SqList L) { int i; for(i=0;i length/2;i++) { temp=L->data[i]; L->data[i]=L->data[L->length-i-1]; L->data[L->length-i-1]=temp; } } int main() { SqList L; int a[9]={1,2,3,4,5,6,7,8,9}; L.length=9; for(int i=0;i<9;i++) { L.data[i]=a[i]; } ListTraverse(L); ListReverse(&L); ListTraverse(L); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)