//倒置线表
void rev_seq(PSeqList palist)
{
DataType temp;
int count, i;
if(palsit->n == 0 || palist->n == 1)
return ;
count = palsit->n/2;
for(i=0;i<count;i++){
x = palist->element[i];
palist->element[i] = palist->element[palist->n-1-i];
palist->element[palist->n-1-i] = x;
}
} //带头线性链表逆置
//新建p,q,r完成逆置
void rev_link(LinkList llist) {
PNode p,q,r;
p = llist->link;
if(p==NULL) return ;
q = p->link;
if(q == NULL) return ;
r = q->link;
while(r!=NULL) {
q->Link = p;
p = q;
q = r;
r = r->link;
}
q->link = p;
llist->link->link = NULL;
llist->link = q;
}
//不带头的链表倒置
void rev_link_nohead(LinkList *pllist){
PNode p,q,r;
p = (*pllist);
if(p==NULL) return;
q = p->link;
if(q==NULL) return ;
r = q->link;
while(r!=NULL){
q->link = p;
p=q;
q = r;
r =r->link;
}
q->link = p;
(*pllist)->link = NULL;
*pllist = q;
}
线性表和链表的倒置
最新推荐文章于 2023-09-18 22:38:11 发布