- 问题背景:
2.实现代码如下:
#include <iostream>
using namespace std;
typedef struct node{
int data;
node *link;
}*pointer;
int main() {
pointer head;
head=new node;
cin>>head->data;
head->link=NULL;
pointer p;
pointer s;
s=head;
p=head;
pointer marry;//前驱指针
marry=head;
pointer eros;
eros=head;
pointer last=head;
while (cin.get()!='\n') {
pointer temp;
temp =new node;
cin>>temp->data;
temp->link=p->link;
p->link=temp;
p=temp;
}//链表建立完成,接下来寻找最大值。
int baby=head->data;
while (s->link!=NULL) {
if(baby<s->link->data){
baby=s->link->data;
marry=s;
}
s=s->link;
}//最大值为baby的值,指针marry指向data域为baby的前驱结点
while(eros->data!=baby)
{
eros=eros->link;
}
if(head->data!=baby)
{
s->link=marry->link;
marry->link=eros->link;
eros->link=NULL;}
else{
s->link=head;
last=head->link;
head->link=NULL;
}
while(last->link!=NULL)
{
cout<<last->data<<" ";
last=last->link;
}
cout<<last->data<<endl;
return 0;
}
3.希望能对大家有所帮助。
4.继续加油。