今天一高中同学发短信求助,帮忙写一段程序,实现2个单链表的合并,并按升序排列。
哎,当初没有好好学习,数据结构什么的很差劲,只有硬着头皮,看书,查资料,终于算是用
C++编写出来了,虽然检查错误耗费了一个下午。
#include <iostream>
using namespace std;
#define NUM 8
struct LNode
{
int data;
struct LNode *next;
};
typedef struct LNode * LinkList;
/**
将数组插入链表
*/
void create(LinkList &list, int a[])
{
struct LNode *p;
int i;
list->next = NULL;
for (i = NUM-1; i >= 0; --i)
{
p = new LNode;
p->data = a[i];
p->next = list->next;
list->next = p;
}
}
/**
显示链表节点值
*/
void show(LinkList list)
{
struct LNode *p;
p = list->next;
while (p)
{
cout << p->data << ' ';
p = p->next;
}
}
/**
合并链表
*/
LinkList Merge(LinkList la, LinkList lb, LinkList &lc)
{
LNode *p;
// 确定最大值在la上, 还是lb上
if(la->data > lb->data)
{
lc = p = la;
la = la->next;
}
else
{
lc = p = lb;
lb = lb->next;
}
while(la && lb)
{
if(la->data <= lb->data)
{
p->next = la;
la = la->next;
}
else
{
p->next = lb;
lb = lb->next;
}
p = p->next;
}
// 剩余部分链表的挂接
p->next = (la ? la:lb);
return lc;
}
void main()
{
LinkList s;
LinkList u;
LinkList A;
int ss[NUM]={1,3,5,7,9,11,13,17};
int uu[NUM]={2,8,14,19,21,25,26,33};
s = new LNode;
u = new LNode;
A = new LNode;
create(s, ss);
create(u, uu);
cout<<"链表s显示:"<<endl;
show(s);
cout<<endl;
cout<<"链表u显示:"<<endl;
show(u);
cout<<endl;
Merge(s,u,A);
cout<<"合并之后链表A显示:"<<endl;
show(A);
cout<<endl;
}
程序 = 数据结构 + 算法
基础不扎实很难向上发展,否则只能成为代码民工;
给自己打个气,一步一步来,向着自己的梦想慢慢前进。
浪费的青春要自己争回来!
分享到:
相关推荐
阔别六年之久 网易网站联盟昨日重新上线.docx
2024年阔别三年 李子柒回归仍“顶流”——三农内容创作及品牌机会点洞察报告.pdf
"C++程序设计知识提纲" 本资源摘要信息涵盖了 C++ 程序设计的基础知识点,包括基本概念、数据类型、变量、运算符、控制结构、函数、数组、指针、面向对象编程等。 基本概念 * 算法:对数据处理操作的步骤。 * ...
WebDAV C++ Client是一个专为C++开发者设计的开源库,主要目的是为了方便与WebDAV服务器进行交互。WebDAV(Web Distributed Authoring and Versioning)是一种基于HTTP协议的扩展,允许用户通过标准的HTTP请求方法如...
在"EQ2008动态库文件"中,我们可以预期找到与易阔2008年版本相关的LED控制功能。这些文件可能包括: - 库文件(如eqled.dll):实际的动态链接库,包含了实现LED控制的函数。 - 头文件(如eqled.h):定义了DLL导出...
《易阔LED软件:探索LED显示屏控制系统的奥秘》 LED显示屏在现代视觉传播中扮演着至关重要的角色,从商业广告到大型活动,无处不在。而在这背后,一款高效、稳定的LED控制软件是确保显示效果的关键。"易阔LED软件...
*** 当用exit命令退出rshell时,make会自动为你删除bin文件夹*** ##错误、行为和限制 $ false && false && ls -a || pwd $ false && false && ls -a || pwd :此命令只会在应该只运行 pwd 时运行ls -a 。 对于这种...
大黑阔的数据包
杭州阔知教育平台开发
阔福提升门结构说明书,方便维修人员进行修理
多波束测深假象消除与动态空间归位技术_魏玉阔多波束测深假象消除与动态空间归位技术_魏玉阔
山寨黑阔工具
在C++中实现Delaunay三角剖分,通常采用逐点插入法,即从点集中的每个点开始,逐步插入并调整已有的三角形结构,以保持Delaunay性质。 首先,我们需要理解Delaunay三角剖分的基本概念和构建过程。在二维空间中,...
本文将深入探讨用C++实现这款游戏的关键技术和知识点。 1. **C++基础知识**:在编写2048游戏时,我们需要掌握C++的基本语法,包括变量声明、数据类型、控制结构(如循环和条件语句)、函数的定义和调用等。 2. **...
该患者2年前有右输卵管妊娠史,并因腹腔镜输卵管吻合术而终止。 根据对该患者的长期随访,我们发现她在广泛结扎异位妊娠后5个月复发了右输卵管妊娠。 她通过腹腔镜接受输卵管切除术。 我们介绍了该病例,以讨论阔...
在C++或Java中,可以这样定义节点: ```cpp struct ListNode { int val; // 数据域 ListNode *next; // 指针域,指向下一个节点 ListNode(int x) : val(x), next(NULL) {} // 构造函数 }; ``` ### 链表的创建 2...
用 #include "Excel.h" int main(int argc, const char * argv[]) { //Create an Excel Document Excel spreadsheet("/Users/deisterhold/Desktop/Test.xml"); //Get the main workbook (Excel only has a ...
预计2021年下半年信用利差将温和走阔,信用风险分化将加剧。特别是在地产和城投板块,信用风险可能增加。但同时也指出,地方政府偿债意愿的提升和经营现金流的改善,可能使得产业国企的信用风险相对平稳。 风险提示...