#include<iostream>
using namespace std;
struct node{
int score;
node *next;
node(int _score):score(_score),next(NULL){}
};
int main(){
int n;
cin>>n;
node *head=new node(-1), *tmpNode=NULL;
int tmpScore;
for(int i=0; i<n; i++){
cin>>tmpScore;
tmpNode = new node(tmpScore);
if(NULL == head->next) //链表为空直接插末尾
head->next = tmpNode;
else{ //链表不为空,插入指定位置
node *p = head;
while(p->next != NULL){
if(tmpNode->score>=p->next->score)
break;
else
p = p->next;
}
//p的后面插入该结点,但要判断p是否为尾结点
if(p->next == NULL)
p->next = tmpNode;
else{
tmpNode->next = p->next;
p->next = tmpNode;
}
}
}
tmpNode = head->next;
while(tmpNode != NULL){
cout<<tmpNode->score<<" ";
tmpNode = tmpNode->next;
}
//销毁链表
node *p = head->next;
while(p != NULL){
node* q = p;
p = p->next;
free(q);
}
free(head);
return 0;
}
链表实现降序排序
最新推荐文章于 2022-12-07 15:57:09 发布