p->next;
while(p->next)
{
while(q)
{
if(p->data>q->data)
{
int e = p->data;
p->data = q->data;
q->data = e;
q = q->next;
}
else
{
q = q->next;
}
}
r = r->next;
p = p->next;
q = p->next;
}
return OK;
}
}
删除链表中所有元素值大于x的结点:
int deleteAGTX(linkedList L,int x)
{
if(L->next==NULL){return ERROR;}
else{
Node *p = L;
while(p->next)
{
if(p->next->data>x)
{
Node *temp = p->next;
p->next = p->next->next;
free(temp);
}
else{
p = p->next;
}
}
return OK;
}
}
将链表中所有负数前置并排序:
//负数在前排序
int negativePriority(linkedList L)
{
if(L->next==NULL){return ERROR;}
else{
Node *p = L;
while(p->next)
{
if(p->next->data<0)
{
Node *temp = p->next;
p->next = temp->next;
temp->next = L->next;
L->next = temp;
}
else{p = p->next;}
}
return OK;
}
}
南京航空航天大学922部分真题:
//2014真题-数据结构6
int _2014_T6(linkedList L)
{
if(L->next==NULL){return ERROR; }
else{
Node *p = L;
Node *t = NULL;
Node *s = NULL;
int count = 1;
while(p->next)
{
if(count%2==0)
{
t = p->next;
p->next = p->next->next; //关键步骤
t->next = s;
s = t;
}
else{
p = p->next;
}
count++;
}
p->next = s;
return OK;
}
}
//2015真题数据结构6
int _2015_T6(linkedList L)
{
if(L->next==NULL){return ERROR; }
else{
Node *p = L->next;
Node *q = L->next;
Node *t = L;
Node *top = NULL;
while(p->next)
{
while(q->next)
{
if(q->next->data>p->data)
{
p = q->next;
t = q;
q = q->next;
}
else{
q = q->next;
}
}
t->next = t->next->next;
p->next = top;
top = p;
t = L;
p = q = L->next;
}
p->next = top;
return OK;
}
}
//2013真题数据结构6
int _2013_T6(linkedList La,linkedList Lb)
{
if(La->next==NULL){return ERROR;}
else{
Node *a = La;
Node *b = Lb;
int element;
while(a->next)
{
element = a->next->data;
while(b->next)
{
if(b->next->data==element){break;}
else{b = b->next;}
}
if(b->next==NULL)
{
Node *t = a->next;
a->next = a->next->next;
free(t);
}
else{a = a->next;}
b = Lb;
}
a = La;
while(a->next)
{
Node *p = La->next;
int e;
while(p->next)
{
if(p->next->data>a->next->data)
{
e = a->next->data;
a->next->data = p->next->data;
p->next->data = e;
}
p = p->next;
}
a = a->next;
}
return OK;
}
}
//2011真题-数据结构24
int _2011_T24(linkedList L)
{
if(L->next == NULL){return ERROR;}
else{
Node *p = L;
int element = p->next->data;
while(p->next)
{
if(element>p->next->data)
{
element = p->next->data;
}
p = p->next;
}
p = L;
while(