C语言-链表排序_单链表的排序c语言

C语言-链表排序_单链表的排序c语言C语言-链表排序题目描述已有a、b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。输入第一行,a、b两个链表元素的数量N、M,用空格隔开。接下来N行是a的数据然后M行是b的数据每行数据由学号和成绩两部分组成输出按照学号升序排列的数据样例输入235100689382495210样例输出210382…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

C语言-链表排序

题目描述

已有a、b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。

输入

第一行,a、b两个链表元素的数量N、M,用空格隔开。 接下来N行是a的数据 然后M行是b的数据 每行数据由学号和成绩两部分组成

输出

按照学号升序排列的数据

样例输入

2 3
5 100
6 89
3 82
4 95
2 10

样例输出

2 10
3 82
4 95
5 100
6 89

My first try on Linkedlist, quite hard for me at first
especially the beginning part
also pointer is a hard part for I havn’t understood yet
BUT PRACTICE PAYS
I finally get to know it

#include<cstdio>
#include<cstdlib>
typedef struct student{ 
   //定义结构 
	int num;
	int sco;
	struct student *next;
}stu;

stu *creat(int n){ 
   //创建链表 
	stu *head,*node,*end;
	head=(stu*)malloc(sizeof(stu));
	end=head;
	for(int i=0;i<n;i++){ 
   
		node=(stu*)malloc(sizeof(stu));
		scanf("%d %d",&node->num,&node->sco);
		end->next=node;
		end=node;
	}
	end->next=NULL;
	return head;
}

stu *link(stu *a,stu*b)//链接 
{ 
   
	stu *p=a;
	while(p->next!=NULL){ 
   
		p=p->next;
	}
	p->next=b->next;
	return a;
}

void linksort(struct student *p){ 
   //排序 
	int tnum,tsco,k=0,i=1;
	 
	struct student *p1;
	p1=p;
	while(i!=0){ 
   
	    while(p1->next!=NULL){ 
   
	        if(p1->num>p1->next->num)  { 
   
	           tnum=p1->num;
	           p1->num=p1->next->num;
	           p1->next->num=tnum;
	 
	           tsco=p1->sco;
	           p1->sco=p1->next->sco;
	           p1->next->sco=tsco;
	           k++;
	        }
	        p1=p1->next;
	    }
	    p1=p;
	    if(k>0){ 
   
			k=0;
		}
	    else i=0;
	}
}

void print(stu *a)//输出 
{ 
   
	stu *p=a;
	while(p->next!=NULL){ 
   
		printf("%d %d\n",p->num,p->sco);
		p=p->next;
	}
}
int main()
{ 
   
	int n,m;
	scanf("%d %d",&n,&m);
	stu *a=creat(n);
	stu *b=creat(m);
	stu *p=link(a,b);
	linksort(p);
	print(p);
	return 0;
} 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183087.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JavaScript遍历字符串

    JavaScript遍历字符串遍历字符串 length 属性该 length 属性具有字符串长度 它仅返回字符串中的字符数 letstr hello123 alert str length 8 thelastchara str str length 1 3 请注意 这 str length 是数字属性 而不是函数 无需在其后添加括号 使用字符串索引号遍历字符串 for 循环要遍历字符串的所有字符 我们可以使用一个普通的 for 循环 并使用一个循环计数器 i 来对字符串索引

    2025年11月6日
    1
  • Ubuntu安装VScode(搬运命令行)「建议收藏」

    Ubuntu安装VScode(搬运命令行)「建议收藏」ToinstallVisualStudioCodeonyourUbuntusystem,followthesesteps.First,updatethepackagesindexandinstallthedependenciesbytyping:sudoaptupdatesudoaptinstallsoftware-properties-commonapt-transport-httpswgetNext,importtheMic.

    2022年9月18日
    4
  • Struts2 入门学习总结一

    Struts2 入门学习总结一一、Struts2简介Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts的下一代产品,这个框架充分发挥了Struts1和WebWork这两种技术的优势,抛弃原来Struts1的缺点,使得Web开发更加容易。struts2还有以下…

    2025年6月25日
    1
  • DELPhI XE5 控件

    DELPhI XE5 控件Raize Components v6.1.5 + serial〖支持D7~XE5〗含序列号:EXE安装程序傻瓜安装即可http://download.csdn.net/detail/wozengcong/6356865EhLib v6.2.149 for D7-XE5〖最新版本 含源码和DEMO〗:EXE安装程序傻瓜安装即可http://download.csdn.net/det

    2022年7月18日
    16
  • 如何解压.bz2文件包

    如何解压.bz2文件包.bz2  解压1:bzip2-dFileName.bz2  解压2:bunzip2FileName.bz2  压缩:bzip2-zFileName  .tar.bz2  解压:tarjxvfFileName.tar.bz2或tar–bzipxvfFileName.tar.bz2  压缩:tarjcvfFileName.tar.bz2Dir…

    2022年6月6日
    65
  • intelj 2021 激活码(注册激活)[通俗易懂]

    (intelj 2021 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsaWN…

    2022年3月21日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号