【菜鸟求教】单链表递增排序,程序输出出现-842150451

数据结构与算法 专栏收录该内容
1 篇文章 0 订阅

【菜鸟求教】单链表递增排序,程序输出出现-842150451

#include "stdafx.h"
#include "malloc.h"
#include "stdio.h"
typedef int ElemType;

typedef struct Lcode
{
	ElemType data;
	struct Lcode*next;
}LinkList;

void InitList(LinkList*&L)
{
	L=(LinkList*)malloc(sizeof(LinkList));
	L->next=NULL;
}

void ListInsert(LinkList*&L,ElemType a[],int n)
{
	LinkList *s,*r;
	int i;
	L=(LinkList*)malloc(sizeof(LinkList));
	r=L;
	for(i=0;i<n;i++)
	{
		s=(LinkList*)malloc(sizeof(LinkList));
		r->data=a[i];
		r->next=s;
		r=s;
	}
	r->next=NULL;
}



void sort(LinkList*&L)
{
  LinkList *p,*pre,*q;
  p=L->next->next;
  L->next->next=NULL;
   while(p!=NULL)
   {
	   q=p->next;
	   pre=L;
	   while(pre->next!=NULL&&pre->next->data<p->data)
	   {
		   pre=pre->next;
	   }
	   p->next=pre->next;
	   pre->next=p;
	   p=q;
   }
}



void DisplayList(LinkList*L)
{
	LinkList*p=L;
  
	while(p->next!=NULL)
	{
		printf("%d",p->data);
		p=p->next;
	}
	printf("\n");
}






int main(int argc, char* argv[])
{
    int a[]={2,4,7,6,8,9,0,4,5,2,1,3};
    LinkList *L;
	InitList(L);
    ListInsert(L,a,12);
    printf("排序前:");
    DisplayList(L);
	sort(L);
    printf("排序后:");
    DisplayList(L);
	return 0;
}

菜鸟哭了,没检查出来问题,但输出排序后的数字中间会出现-842150451,而且第一个元素也没有参与排序。求大佬救命,哭了。

运行的程序是这样的 :
在这里插入图片描述

  • 0
    点赞
  • 1
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

dll浮

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值