#include <stdio.h>
#include <stdlib.h>
typedef struct LNode{
int num;
struct LNode *next;
}LNode,*LinkList;
LinkList Init(){
LinkList L;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
return L;
}
void creat(LinkList L,int len){
LinkList r=L;
LinkList s;
for(int i=0;i<len;i++){
s=(LinkList)malloc(sizeof(LNode));
scanf("%d",&s->num);
s->next=NULL;
r->next=s;
r=s;
}
}
void output(LinkList L,int len){
LinkList p=L->next;
for(int i=0;i<len;i++)
{
printf("%d ",p->num);
p=p->next;
}
printf("\n");
}
void change(LinkList L,int len){
if(L->next == NULL)
return;
LinkList p,q,p1,pre;
p1 = L->next;
p = p1->next;
pre = p1;
while(p){
q=p->next;
if(p->num< p1->num){
pre->next = p->next;
p->next = L->next;
L->next = p;
p=q;
}
else{
pre = p;
p = p->next;
}
}
}
int main(){
int len,num;
LinkList L=Init();
scanf("%d",&len);
creat(L,len);
output(L,len);
change(L,len);
output(L,len);
}
【数据结构】单链表比第一个元素大的放在前面,其他放在后面(c语言)
最新推荐文章于 2024-09-12 17:17:36 发布