永发信息网

创建一个单链表,按降序对其中的元素进行排序,并输出链表

答案:1  悬赏:60  手机版
解决时间 2021-11-09 06:28
  • 提问者网友:人生佛魔见
  • 2021-11-09 03:17
创建一个单链表,按降序对其中的元素进行排序,并输出链表
最佳答案
  • 五星知识达人网友:行路难
  • 2021-11-09 03:43
输入int型数据
数据大于32767或小于-32768
结束创建链表
然后按降输出

#include
#include
#include
typedef int ElemType;
typedef struct linklist
{
struct linklist *next;
ElemType data;
}Node,*linklist;

linklist creatFromHead(void)
{
int n;
linklist h;
Node *node;
h=(linklist)malloc(sizeof(Node));
h->next=NULL;
scanf("%d",&n);
while(n>32767||n<-32768)
{
node=(linklist)malloc(sizeof(Node));
node->next=h->next;
h->next=node;
node->data=n;
scanf("%d",&n);
}
return(h);
}

int len(linklist h)
{
int i=0;
while(h->next!=NULL)
{
h=h->next;
i++;
}
return(i);
}

void insSort(linklist h)
{
int i,j,l;
linklist p1,p2;
l=len(h);
for(i=1;i {
p1=h->next;
p2=h->next->next;
for(j=1;j<=l-i;j++)
{
if(p1->datadata)
{
p1->data=p1->data^p2->data;
p2->data=p1->data^p2->data;
p1->data=p1->data^p2->data;
}
p1=p1->next;
p2=p2->next;
}
}
}

void print(linklist h)
{
while(h->next!=NULL)
{
printf("%d ",h->next->data);
h=h->next;
}
putchar('\n');
}

int main(void)
{
linklist l;
l=creatFromHead();
print(l);
insSort(l);
print(l);
system("pause");
return(0);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯