顺序表的转置
1、请完成下列算法填空实现对顺序表逆置存储,逆置存储是指将元素线性关系逆置后的顺序存储,例如(a0,a1,a2),关系逆置后为(a2,a1,a0).
SeqList的结构体定义如下:
typedef struct seqList
{
int n;
int maxLength;
ElemType *element;
}SeqList;
void Invert(SeqList *L) {
ElemType temp; int i;
for ( i=0; i<________; i++) {
temp =____________;
L->element[i] = L->element[___________];
L->element[________] = ___________; }
}
答案
(L->n)/2
L->element[i]
i-n-1
i-n-1
temp
算法思想:
利用for循环半遍历顺序表,将表头尾的数据对换。 i<(L->n)/2;是实现半变历的关键。
单链表的转置
请完成下列算法填空现对单链表的逆置存储,逆置存储是指将元素线性关系逆置后的链表存储,例如(a0,a1,a2),关系逆置后为(a2,a1,a0).
单链表结点Node和单链表SingleList结构体定义如下:
typedef struct node
{
ElemType element;
struct node *link;
}Node;
typedef struct singlelist
{
Node *first;
int n;
}SingleList;
void