原题链接:[编程入门]链表合并
#include<bits/stdc++.h>
using namespace std;
struct node{
int data;
int data2;
node *next;
};
node *creatt(){
node *h=new node;h->next=NULL; //初始化头结点
int x;
while(cin>>x){
node *p=new node;
p->data=x; //头插法 类似栈
p->next=h->next;
h->next=p;
}
return h;
}
node *creatw(int n){
node *h=new node;h->next=NULL;
node *w=h; //初始化尾结点
int x,y;
for(int i=0;i<n;i++){
cin>>x>>y;
node *p=new node;
p->data=x; //尾插法 类似队列
p->data2=y;
w->next=p;
w=p;
}
w->next=NULL;
return h;
}
node *repalce(node *h,int x,int k){ //替换元素 x->k
node *p=h;
while(p){
if(p->data==x) p->data=k;
p=p->next;
}
return h;
}
node *insert(node *h,int i,int k){
node *pre=h;
for(int j=1;j<i;j++) pre=pre->next; //目标节点的上一个节点
node *p=new node;
p->data=k;
p->next=pre->next;
pre->next=p;
return h;
}
node *delet(node *h,int x){ //按值删除
node *p=h,*pre;p=h->next;
while(p->data!=x){
pre=p;
p=p->next;
}
pre->next=p->next;
delete(p);
return h;
}
void sort(node *h){ //冒泡法排序
for(node *p=h->next;p!=NULL;p=p->next){
for(node *q=h->next;q->next!=NULL;q=q->next){
if(q->data>q->next->data) {
swap(q->data,q->next->data);
swap(q->data2,q->next->data2);
}
}
}
}
void print(node *h){
node *p=h->next;
while(p){
cout<<p->data<<" "<<p->data2<<endl;
p=p->next;
}
cout<<endl;
}
int main(){
int a,b;cin>>a>>b;
node *l=creatw(a+b);
sort(l);
print(l);
return 0;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复