最小のノードがリンクリストの先頭に移動されます
トピック
空でない線形リストの最初のノードがリストによって示されることが知られています。リンクリスト内の最小ノードをリンクリストの先頭に移動するアルゴリズムを記述してください。
分析
この質問は、上記の質問「リンクリストで最大の値の範囲を持つノードを削除する」に似ています。クリックすると表示されます。
コード
// 已知非空线性表第一个结点由list指出。请写一算法,将链表中中最小的结点移到链表最前面。
LinkList MINHEAD(LinkList list){
LinkList p,r,s,q;
p=list;
r=p;
q=p;
p=p->link;
while (p!=NULL){
if (q->data>p->data){
s=r;
q=p;
}
r=p;
p=p->link;
}
if (q!=list){
s->link=q->link;
q->link=list;
list=q;
}
return list;
}