跪求编程大神帮我解答下此题~高分悬赏~在线等~急!!

用c语言

第1个回答  推荐于2016-03-14
有点偷懒写的,不知道符不符合要求

#include<stdio.h>
#define NULL 0

typedef struct Pnode//定义节点
{
int key;
Pnode *next;
}P;

P a,b,c;//三个链表的头结点

void init()//a,b链表初始化
{
P *p;
char c='a';
p=&a;
printf("请输入第一个链表数据,数字之间空格间隔(例:2 3 4):\n");
while(c!='\n')
{
scanf("%d",&p->key);
c=getchar();
p->next=new P;
p=p->next;
}
p->next=NULL;
c='a';
p=&b;
printf("请输入第二个链表数据,数字之间空格间隔(例:4 5 6):\n");
while(c!='\n')
{
scanf("%d",&p->key);
c=getchar();
p->next=new P;
p=p->next;
}
p->next=NULL;
}

void fanzhuan(P *head)//链表翻转,成为降序(非升)
{
P *p,*q;
int temp;
q=head;
while(q->next!=NULL)
{
p=q;
while(p->next!=NULL)
{
if(p->key>q->key)
{
temp=p->key;
p->key=q->key;
q->key=temp;
}
p=p->next;
}
q=q->next;
}
}

void hebing(P *a,P *b)//链表合并再翻转
{
P *p,*r;
int temp;
r=&c;
p=a;
while(p->next!=NULL)
{
r->key=p->key;
r->next=new P;
r=r->next;
p=p->next;
}
p=b;
while(p->next!=NULL)
{
r->key=p->key;
r->next=new P;
r=r->next;
p=p->next;
}
r->next=NULL;
r=&c;
fanzhuan(r);
}

void display(P *p)
{
P *q;
q=p;
while(q->next!=NULL)
{
printf("%d ",q->key);
q=q->next;
}
printf("\n");
}

int main()
{
init();
P *p,*q;
p=&a;
fanzhuan(p);
printf("\n链表一反转后为:");
display(p);
p=&b;
fanzhuan(p);
printf("链表二反转后为:");
display(p);
p=&a;
q=&b;
hebing(p,q);
p=&c;
printf("两链表合并后的非升序列为:");
display(p);
}追问

可不可以麻烦你画个这个代码的流程图给我

追答

这都过了一个月了都。。。。。

我不知道你要什么样的流程图,这里面只有一个算法就是排序罢了,因为我是偷懒写的,后面一问或许是要求先排序再连接,但是我是先连接再排序,这样方便一点

所以我只画了这个排序算法的流程图,而且我word用的并不好,,抱歉了= =

追问

太感谢了~

追答

额昨晚是赶着画的,有一些判断没考虑进去,我又改了一些,你看看吧

本回答被提问者和网友采纳

编程达人帮忙,急急急!!!高分答谢
暂时没有全部的,现在比较忙,没空帮你现编,电脑里也没有C语言软件。我先给你一部分,以后再慢慢补充。题目 2(找到类似的,不过排序你就自己弄了。):给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。1. 程序分析:学会分解出每一位数 2.程序源代码:main( ){...

C语言大神帮帮我啊!!帮帮忙,我悬赏高分帮帮忙!!在线等待
include "stdlib.h"long count=0;void Swap(int &a,int &b){ int temp=a;a=b;b=temp;} void Perm(int list[],int k,int m)\/\/k表示前缀的位置,m是要排列的数目.{ if(k==m-1)\/\/前缀是最后一个位置,此时打印排列数.{ int tag=0;for(int i=0;i<m;i++){ if(list[i]==i...

求高手解答一些简单的C语言题目!(高分悬赏)
1、Before GlobalPlusPlus(), it is 1 Before ++, it is 1 After ++, it is 2 After GlobalPlusPlus(), it is 2 2、over!3、(1)printf("Input a year:");scanf("%d",&year);(2)(0==year%4 && 0!=year%100) || 0==year%400 4、(1)s[i]!='\\0'(2)s[j]=s[i];5...

高分悬赏visual c++编程题
long factorial(int m) \/\/用于求阶乘 { if(m==0||m==1)return 1;else return m*factorial(m-1);} long forSum(int n) \/\/用于求阶乘之和 { int i=0;long y=0;for(i=1;i<=n;i++){ y+=factorial(i);} return y;} include <stdio.h> int main(){ long y=0;int...

图中找回路 C语言编程 跪求大神帮助 高分悬赏 采纳 追加分数
(2)用深入优先(DFS)从任 一顶点v0开始搜索,在搜索过程中标记访问过的顶点和边,如果有某个顶点未访问,且该顶点有一条边与v0相连,即找到一条回路。伪码差不多是这个样子吧。int DFS(Graph G,int vj){ visited[vj]=TRUE;for(vj所有邻接点vi){ if(visited[vi]=FALSE){ if(Edge[vj][...

高分悬赏急求哪位单片机C语言编程高手帮我翻译这个程序,由于要提问到...
从你的程序上看,液晶应该由上下两块显示Page组成,然后上面的Page显示4个汉字的上半段,下面显示4个汉字的下半段,所以有8个Page,和你的void lcd_clear(void) 函数也就对应了。void dispm_hz_down(uchar code * hz)

高分悬赏Java程序,急!!!
我的 高分悬赏Java程序,急!!!参考题目:1.做一个写字板,要求本软件用户必须注册方可运行(注册后下次启动无需在注册,第一次使用必须注册)。2.五子棋双人对弈程序。要求:•按开始按钮双方开始下棋,当在已... 参考题目:1.做一个写字板,要求本软件用户必须注册方可运行(注册后下次启动无需在注册,第一次使用必须...

java趣味编程实例?
5道简单的JAVA编程题(高分悬赏) 很详细的帮你写下,呵呵,所以要给分哦! 1、 (1)源程序如下: publicclassOne{ publicstaticvoidmain(String[]args){ Stringname="张三"; intage=23; charsex='男'; Stringmyclass="某某专业2班"; System.out.println("姓名:"+name); System.out.println("姓名:"+age);...

...本人不吝啬积分,满意答案高分悬赏!在线等...
7 * R8\/(R8+R3);2、连接U1A和U1B的是分压电路,同相端Ui1bp=Uo1a * R10\/(R4+R10),反相端Ui1bn=Uo1a * R11\/(R5+R11)3、U1B是负反馈放大电路,Uo=-(1+R7\/R6)Ui=-151(Ui1bp - Ui1bn)= 151(Ui1bn-Ui1bp);4、D2是5.1V稳压器,Uo超过5.1V时起稳压作用。

高分:网络流问题
高分:网络流问题 200 高分问题啊!!要有详细解答才能给分!!先向我解释什么是最大流,最小费用,最小割第二,向我解释到底用什么算法求出最大流,最小费用,最小割,方法一定要讲明白,讲清楚!!第三,... 高分问题啊!!要有详细解答才能给分!!先向我解释什么是最大流,最小费用,最小割第二,向我解释到底用...

相似回答
大家正在搜