c语言中链表冒泡排序(求大神帮忙看下这个函数哪里出错了)! 5

structnode*bubbleSort(structnode*head){structnode*p_prior=(structnode*)malloc(sizeof(... struct node * bubbleSort(struct node *head)
{
struct node * p_prior = (struct node *)malloc(sizeof(struct node));
struct node * p_next,*p_head;
struct node *p__next;
p_prior->next = p_next;
p_next->next = p__next;
for(int i =0;i<length(head);i++)
{
for(p_next = head;p__next != NULL;p_prior = p_next,p_next = p__next,p__next = p__next->next)
{
struct node * prior = p_prior;
struct node * next = p_next;
struct node * _next = p__next;
if(p_next->student.data>p__next->student.data)
{
if(p_next == head)
{
head = p__next;
next->next = _next->next;
_next->next = next;
}
else
{
prior->next = _next;
next->next = _next->next;
_next->next = next;
}
}
}
p_next = NULL;
}
return head;
}
length(head)该函数正确,求的链表的长度
展开
 我来答
匿名用户
2016-07-13
展开全部
两种思路:1、交换链表中各节点的数据,不交换节点;2、交换节点,即节点link指针的内容。下面以第一种思路为例:voidsort(LinkList*L){inti,j,t;LinkList*p=L;intcount=0;while(p->link!=NULL){count++;p=p->link;}for(i=0;i
追问
你这啥啊
第一个思路我知道的,但是如果数据过于大的话就不可靠了
求第二种思路的解决方式(调换指针)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式