【c语言/链表】两个有序单链表合成为一个有序单链表，自己写的代码运行出错，求助

``````#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node  *next;

{
//头插法
//创建头结点
int i;
//创建后续节点
for(i=n;i>0;i--)//由于是头插法，将数组元素从后往前放入单链表
{
node->data=a[i-1];

}
}

{
int i,j,t;
one=one->next;
two=two->next;
three=three->next;
while(one||two)
{
i=one->data;
j=two->data;
if(i<=j)
{
three->data=i;
one=one->next;
three=three->next;
}
else
{
three->data=j;
two=two->next;
three=three->next;
}
}
}
{
int a;
three=three->next;
while(three)
{
a=three->data;
printf("%d",a);
three=three->next;
}
}

void main(){
int a[100],b[100],c[200],i,n,m,t;
printf("请输入第一个链表的长度(不超过100)");
scanf("%d",&n);
printf("请输入第二个链表的长度(不超过100)");
scanf("%d",&m);
t=n+m;
printf("请输入第一个链表的值(有序)");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("请输入第二个链表的值(有序)");
for(i=0;i<m;i++)
{
scanf("%d",&b[i]);
}

newList(a,n,one);
newList(b,m,two);
newList(c,t,three);
}
``````

1个回答

# 问题解决的话，请点下`采纳`

``````#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node  *next;

{
//头插法
//创建头结点
int i;
//创建后续节点
for(i=n;i>0;i--)//由于是头插法，将数组元素从后往前放入单链表
{
node->data=a[i-1];

}
}

{
int i,j,t;
one=one->next;
two=two->next;
three=three->next;
while(true)
{
if (!one && !two) return;
if(one && two)
{
if (one->data<=two->data)
{
three->data=one->data;
one=one->next;
}
else
{
three->data=two->data;
two=two->next;
}
}
else
{
if (one)
{
three->data=one->data;
one=one->next;
}
else
{
three->data=two->data;
two=two->next;
}
}
three=three->next;
}
}
{
int a;
three=three->next;
while(three)
{
a=three->data;
printf("%d",a);
three=three->next;
}
}

int main(){
int a[100],b[100],c[200],i,n,m,t;
printf("请输入第一个链表的长度(不超过100)");
scanf("%d",&n);
printf("请输入第二个链表的长度(不超过100)");
scanf("%d",&m);
t=n+m;
printf("请输入第一个链表的值(有序)");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("请输入第二个链表的值(有序)");
for(i=0;i<m;i++)
{
scanf("%d",&b[i]);
}

one=newList(a,n);
two=newList(b,m);

three=newList(c,t);
}

``````

C语言归并有序单链表的问题

#include<iostream> //单链表的创建，插入，删除，打印 为什么没有输出数据呢？ #include<stdlib.h> using namespace std; typedef struct LNode { int num; float score; struct LNode *next; }LNode/**Linklist*/; void CreateList_L(LNode *L,int n) //创建单链表 { LNode *p; L=new LNode; L->next=NULL; for(int i=n;i>0;i--) { p=new LNode; cout<<"enter num score:"<<endl; cin>>p->num>>p->score; //p.num 不对 为什么 p->next=L->next; L->next=p; } } int LinkInsert_L(LNode *L,int i, int num,float sco) //在单链表L中第i个位置之前插入元素 { LNode *p; p=L; int j=0; while(p&&j<i-1) //寻找第i-1个结点 { p=p->next; ++j; } if(!p||j>i-1)return -1; LNode *s=new LNode; //生成新节点 s->num=num; s->score=sco; s->next=p->next; p->next=s; } int ListDelete_L(LNode *L,int i,int num,float sco) //在带头结点的单链表L中，删除第i个元素，并返回其值 { LNode *p=L; int j=0; while(p->next&&j<i-1) { p=p->next; ++j; } if(!(p->next)||j>i-1)return -1; LNode *q=new LNode; q=p->next; p->next=q->next; num=q->num; sco=q->score; free(q); } void print(LNode *L,int n) //输出打印单链表数据 { LNode *p=L->next; cout<<"Now,these "<<n<<" records are:"<<endl; while(p!=NULL) { cout<<p->num<<" "<<p->score<<endl; p=p->next; } } int main() { void CreateList_L(LNode *L,int n); void print(LNode *L,int n); const int m=3; LNode* l; CreateList_L(l,m); print(l,m); return 0; }
C语言fopen打开文件失败

c语言怎么把一个双向链表写入文件

C语言填空题求教--链表合并问题，并求大侠给出详细解释
_void merge(struct node *p,struct node *q)_ { struct node *s,*r; r=p; while()//填空1 { if(r->next->data<q->next->data) () //填空2 else if(r->next->data>q->next->data) { s=q->next; ()=s->next;//填空3 s->next=();//填空4 ()=s;//填空5 ();//填空6 } else { r=r->next; s=q->next; ();//填空7 free(s); } } if()//填空8 { r->next=q->next; free(q); } } C语言填空题求教===假设链表p和链表q中的结点值都是整数，且按结点值递增次序链接起来的带表头结点的单链表，在每个链表中，每个结点的值各不相同，但链表p和链表q可能有值相同的结点。下面函数将链表q合并到链表p中，使得合并后的链表仍为按结点值递增有序的单链表，且链表中每个结点的值各不相同。
c语言单链表每次进行查找操作和排序操作的时候程序就闪退

//实现对一个单链表的倒置并输出控制台 #include<stdio.h> #include<stdlib.h> #define NULL 0 struct node{ int num; struct node *next; }; int main() { int i; struct node *L,*s,*p,*q,*k,*h; L=(node*)malloc(sizeof(struct node)); //L->num=NULL; p=L; printf("请输入\n"); for(i=0;i<5;i++) { s=(node*)malloc(sizeof(struct node)); scanf("%d",&s->num); p->next=s; p=s; } p->next=NULL;//建立和输入 p=L; printf("输入的元素"); for(i=0;i<5;i++) { printf("%d\t",p->next->num); p=p->next; } printf("\n"); p=L; while(p->next->next!=NULL) p=p->next; q=p->next; q->next=p; p->next=NULL; p=L; for(i=0;i<3;i++) { while (p->next->next!=NULL) p=p->next; k=p->next; k->next=p; p->next=NULL; p=L; } L->next=q;//链表的倒置 p=L->next; printf("倒置后输出"); while(p!=NULL) { printf("%d\t",p->num); p=p->next; } //倒置后输出 }

C语言中单链表的初始化

C语言 一元多项式的加法运算（单链表）
C语言链表与文件 从文件读数据到链表里
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> //定义全局变量 int isEmpty=0;//标志，判断链表是否为空 //！！!定义单链表结构体！！！ typedef struct Node{ int NUM;//类型总数 char NAME[100];//各类型名称 int num; //各类型下的货物总数 struct Node*next; }Node; //函数声明 Node*create(int n,Node*L); Node*input(Node*L); Node*output(Node*L); Node*outnum(Node*L); Node*outname(Node*L); Node*current(Node*L); void search(Node*L); void print(Node*L); void searchnum(Node*L); void searchname(Node*L); void display(int n,Node*L); //========新增加的函数======== Node*append(Node*L); //主函数 void main() { //创建文件 FILE*fp; fp = fopen("storehouse.txt","w"); fwrite(); fclose(fp); int x; int n;//初次输入的大小 Node *L; if(!(L=(Node *)malloc(sizeof(Node)))) //分配空间 { printf("\n"); exit(1); } printf("欢迎使用我的仓库管理系统！\n"); while(1) { //主菜单开始 printf("==========================\n"); printf("1.显示货物类型列表\n"); printf("2.增加货物类型\n"); printf("3.删除货物类型\n"); printf("4.货物入库\n"); printf("5.货物出库\n"); printf("6.库存显示\n"); printf("7.退出\n"); printf("==========================\n"); //主菜单结束 printf("选择1-7:"); scanf("%d",&x); switch(x) { case 1:;break; case 2:printf("请输入最初的货物类型数量:\n"); scanf("%d",&n); create(n,L); break; case 3:;break; case 4:;break; case 5:;break; case 6:display(n,L);break; case 7:;break; default:printf("input error!\nplaese input1-7"); } } } =========================== 想要读入货物信息：货物名称 货物价格 所属类型？这个怎么搞! [图片说明](https://img-ask.csdn.net/upload/201805/29/1527585662_34177.png) //函数 //1.创建链表节点 Node*create(int n,Node*L) { Node*pTail=L; L->next=NULL; Node*p; //利用尾插建立单链表 int i; for(i=1;i<=n;i++) { p=(Node*)malloc(sizeof(Node)); if(p==NULL) { printf("申请内存空间失败！\n"); } printf("请输入第%d种类型编号:",i); scanf("%d",&p->NUM); printf("请输入第%d种类型名称:",i); scanf("%s",&p->NAME); printf("请输入第%d种类型库存:",i); scanf("%d",&p->num); putchar('\n'); pTail->next=p; pTail=p; } p->next=NULL; return L; } //货物显示函数 void display(int n,Node*L) { Node*p; p=(Node*)malloc(sizeof(Node)); p=L->next;; int i=0; for(i=0;i<n;i++) //{ //while(p!=NULL) { printf("第%d种类型名称:",p->NUM); printf("%s\n",p->NAME); printf("第%d种类型库存:",p->NUM); printf("%d\n",p->num); putchar('\n'); p=p->next; //} } }

《MySQL 性能优化》之理解 MySQL 体系结构

python自动下载图片

【前言】 　　收到一封来信，赶上各种事情拖了几日，利用今天要放下工作的时机，做个回复。 　　2020年到了，就以这一封信，作为开年标志吧。 【正文】 　　您好，我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。 　　先说一下我的基本情况，高考失利，不想复读，来到广州一所大专读计算机应用技术专业。学校是偏艺术类的，计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...

【CSDN编者按】1月2日，阿里巴巴发布《达摩院2020十大科技趋势》，十大科技趋势分别是：人工智能从感知智能向认知智能演进；计算存储一体化突破AI算力瓶颈；工业互联网的超融合；机器间大规模协作成为可能；模块化降低芯片设计门槛；规模化生产级区块链应用将走入大众；量子计算进入攻坚期；新材料推动半导体器件革新；保护数据隐私的AI技术将加速落地；云成为IT技术创新的中心 。 新的画卷，正在徐徐展开。...

Python+OpenCV实时图像处理

2020年一线城市程序员工资大调查

python爬取百部电影数据，我分析出了一个残酷的真相
2019年就这么匆匆过去了，就在前几天国家电影局发布了2019年中国电影市场数据，数据显示去年总票房为642.66亿元，同比增长5.4%；国产电影总票房411.75亿元，同比增长8.65%，市场占比 64.07%；城市院线观影人次17.27亿，同比增长0.64%。 看上去似乎是一片大好对不对？不过作为一名严谨求实的数据分析师，我从官方数据中看出了一点端倪：国产票房增幅都已经高达8.65%了，为什...

Windows可谓是大多数人的生产力工具，集娱乐办公于一体，虽然在程序员这个群体中都说苹果是信仰，但是大部分不都是从Windows过来的，而且现在依然有很多的程序员用Windows。 所以，今天我就把我私藏的Windows必装的软件分享给大家，如果有一个你没有用过甚至没有听过，那你就赚了????，这可都是提升你幸福感的高效率生产力工具哦！ 走起！???? NO、1 ScreenToGif 屏幕，摄像头和白板...

C++(数据结构与算法):62---搜索树（二叉搜索树、索引二叉搜索树）

AI 没让人类失业，搞 AI 的人先失业了

2020年，冯唐49岁：我给20、30岁IT职场年轻人的建议

B站是个宝，谁用谁知道???? 作为一名大学生，你必须掌握的一项能力就是自学能力，很多看起来很牛X的人，你可以了解下，人家私底下一定是花大量的时间自学的，你可能会说，我也想学习啊，可是嘞，该学习啥嘞，不怕告诉你，互联网时代，最不缺的就是学习资源，最宝贵的是啥？ 你可能会说是时间，不，不是时间，而是你的注意力，懂了吧！ 那么，你说学习资源多，我咋不知道，那今天我就告诉你一个你必须知道的学习的地方，人称...