一、題目
設(shè)計一個算法,實現(xiàn)將順序表就地逆置,即利用原順序表的存儲單元將數(shù)據(jù)元素序列(a0,a1,…,an-1)逆置為(an-1,…, a1,a0)。
本題所使用的數(shù)據(jù)結(jié)構(gòu)定義如下:
typedef? int? ElemType ;
順序表的數(shù)據(jù)結(jié)構(gòu)定義:
#define? MAX_SIZE? 100
typedef? struct? sqlist
{?? ElemType? List[MAX_SIZE] ;
int??? length ;
} SqList ;
二、算法思路
1、定義兩數(shù)交換函數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-715315.html
2、用循環(huán)遍歷順序表中的元素,依次調(diào)用兩數(shù)交換函數(shù),將順序表中的第一個元素與最后一個元素的值互換,再將第二個元素與倒數(shù)第二個的值互換,以此類推,直到順序表完成倒序。文章來源地址http://www.zghlxwxcb.cn/news/detail-715315.html
三、程序?qū)崿F(xiàn)
void Swap(ElemType* a, ElemType* b)
{
??? ElemType temp = *a;
??? *a = *b;
??? *b = temp;
}
void Reverse(SqList* L)
{
??? for (int i = 0; i < L->length/2; i++)
?????? Swap(&L->List[i], &L->List[L->length - 1 - i]);
}
到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu)(C語言):順序表就地逆置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!