#include <stdio.h>
#include <stdlib.h>
struct node
{
int num;
struct node * next;
};
typedef struct node Node;
typedef Node * Link;
Link temp_head = NULL;
Link demo_head = NULL;
Link come_head = NULL;
Link come1_head = NULL;
void Link_sort(Link * head,int length)//从大到小
{
int i=0;
int flag=0;
Link sp=*head;
Link p=*head;
Link q=(*head)->next;
Link first=NULL;
while(i<length)
{
while(q != NULL)
if(flag==0)
{
if(p->num<q->num)
{
p->next=q->next;
q->next=p;
sp=q;
first=sp;
q=p->next;
}
else
{
p=p->next;
q=q->next;
first=sp;
}
flag++;
}
else
{
if(p->num<q->num)
{
p->next=q->next;
q->next=p;
sp->next=q;
sp=q;
q=p->next;
}
else
{
p=p->next;
q=q->next;
sp=sp->next;
}
}
p=first;
q=first->next;
sp=first;
flag=0;
i++;
}
*head=first;
}
int Link_length(Link * head)//测算链表长度
{
int length=0;
Link p=NULL;
p=*head;
if(p==NULL)
return 0;
else
{
while(p!=NULL)
{
p=p->next;
length++;
}
}
return length;
}
void create_link(Link * head)
{
*head = NULL;
}
void create_node(Link * new_node)
{
*new_node = (Link)malloc(sizeof(Node));
}
void insert_node_head(Link * head,Link new_node)
{
if(*head == NULL)
{
*head = new_node;
temp_head=new_node;
demo_head=new_node;
come_head=new_node;
come1_head=new_node;
(*head)->next =NULL;
}
else
{
(*head)->next =new_node;
*head=(*head)->next;
(*head)->next =NULL;
}
//printf("%d\n",(*head)->num);
}
void release_link(Link * head)//释放节点
{
Link p = NULL;
p = *head;
while(*head != NULL)
{
*head = (*head)->next;
free(p);
p = *head;
}
}
int main()
{
Link head = NULL;
Link new_node = NULL;
int i,c=0;
create_link(&head);
for(i = 0;i < 10;i++)//链表节点赋值
{
create_node(&new_node);
new_node->num = i+4;//-c ;
/*
if(i%2==0)
c++;
else
c-=10;
*/
insert_node_head(&head,new_node);
}
int length=Link_length(&come_head);
printf("链表长度:length=%d\n\n",length);
while(temp_head != NULL)
{
printf("(顺)内容:head->num=%d\n",temp_head->num);
temp_head= temp_head->next;
}
printf("\n\n");
Link_sort(&demo_head,length);
while(demo_head != NULL)
{
printf("(逆)内容:head->num=%d\n",demo_head->num);
demo_head= demo_head->next;
}
return 0;
}
链表的排序
于 2022-02-17 16:43:07 首次发布