C语言做链表的排序#include"stdafx.h"
#include<stdlib.h>
//创建一个节点,data为value,指向NULL
Node*Create(intvalue){
Node*head=(Node*)malloc(sizeof(Node));
head->data=value;
head->next=NULL;
returnhead;
}
//销毁链表
boolDestroy_List(Node*head){
Node*temp;
while(head){
temp=head->next;
free(head);
head=temp;
}
head=NULL;
returntrue;
}
//表后添加一个节点,Create(value)
boolAppend(Node*head,intvalue){
Node*n=Create(value);
Node*temp=head;
while(temp->next){
temp=temp->next;
}
temp->next=n;
return0;
}
//打印链表
voidPrint_List(Node*head){
Node*temp=head->next;
while(temp){
printf("%d->" , temp->data);
temp=temp->next;
}
printf("\n");
}
//在链表的第locate个节点后(头节点为0)插入创建的节点Create(value)
boolInsert_List(Node*head,intlocate,intvalue){
Node*temp=head;
Node*p;
Node*n=Create(value);
if(locate<0)
returnfalse;
while(locate--){
if(temp->next==NULL){
temp->next=Create(value);
returntrue;
}
temp=temp->next;
}
p=temp->next;
temp->next=n;
n->next=p;
returntrue;
}
//删除第locate个节点后(头节点为0)的节点
boolDelete_List(Node*head,intlocate){
Node*temp=head;
Node*p;
if(locate<0)
returnfalse;
while(locate--){
if(temp==NULL){
returnfalse;
}
temp=temp->next;
}
p=temp->next->next;
free(temp->next);
temp->next=NULL;
temp->next=p;
returntrue;
}
//获取链表长度(不包括头节点)
intSize_List(Node*head){
Node*temp=head;
intsize=0;
while(temp->next){
temp=temp->next;
size++;
}
returnsize;
}
//链表的三种排序(选择 , 插入 , 冒泡)
boolSort_List(Node*head){
intt=0;
intsize=Size_List(head);
//选择排序
/*for(Node*temp=head->next;temp?。絅ULL;temp=temp->next){
for(Node*p=temp;p?。絅ULL;p=p->next){
if(temp->data>p->data){
printf("换%d和%d\n",temp->data,p->data);
t=temp->data;
temp->data=p->data;
p->data=t;
}
}
}*/
//插入排序
/*for(Node*temp=head->next->next;temp?。絅ULL;temp=temp->next){
for(Node*p=head;p->next?。絅ULL;p=p->next){
if(p->next->data>temp->data)
{
printf("换%d和%d\n",temp->data,p->next->data);
t=temp->data;
temp->data=p->next->data;
p->next->data=t;
}
}
}*/
//冒泡排序
for(Node*temp=head->next;temp->next?。絅ULL;temp=temp->next){
for(Node*p=head->next;p->next?。絅ULL;p=p->next){
if(p->data>p->next->data){
t=p->data;
p->data=p->next->data;
推荐阅读
- 堡垒之夜开发商腾讯游戏,堡垒之夜是腾讯代理的吗
- Python怎么监听udp数据,python socket 监听
- 如何学好电商直播,如何学好电商直播课程
- css样式表里面超链接代码,css设置超链接样式
- 颜色直方图java代码 颜色直方图有哪些优缺点
- 微信怎样变成黑色安卓,如何让微信变成黑色安卓
- html5严格类型,html严谨的语法有哪些
- 直播卖货交税怎么算的,直播卖货怎么收税
- vb.net用哈希存储 vb 哈希表