数据结构:线性表的应用

文章目录

  • 1.线性表的合并
  • 2.有序表的合并

1.线性表的合并

问题描述
假设利用两个线性表La和Lb分别表示两个集合A和B,现要求一个新的集合A=AUB
La=(7,5,3,11)Lb=(2,6,3)->La=(7,5,3,11,2,6)
算法步骤
依次取出Lb中的每个元素,执行以下操作:

  1. 在La中查找该元素
  2. 如果找不到,则将其插入La的最后
void union(List &La,List Lb){La len=ListLength(La);Lb len=ListLength(Lb);for(i=1;i<=Lb len;i++){GetElem(Lb,i,e);if(!LocateElem(La,e))ListInsert(&La,++La len,e);}
}

2.有序表的合并

问题描述
已知线性表La和Lb中的数据元素按值非递减有序排列,现要求将La和b归并为
一个新的线性表LC,且Lc中的数据元素仍按值非递减有序排列。
算法步骤

  1. 创建一个空表Lc
  2. 依次从La或Lb中“"摘取”元素值较小的结点插入到Lc表的最后,直至其中一个表变空为止
  3. 继续将La或Lb其中一个表的剩余结点插入在Lc表的最后
void MergeList_Sq(SqList LA,SqList LB,SqList){pa=LA.elem;pb=LB.elem;LC.length=LA.length+LB.length;LC.elem=new ElemType[LC.length];pc=LC.elem;pa last=LA.elem+LA.length-1;pb last=LB.elem+LB.length-1;while(pa<=pa last &&pb<=pb last){if(*pa<=*pb)*pc++=*pa++else *pc++=*pb++;}while(pa<=pa_last)*pc++=*pa++;while(pb<=pb_last)*pc++=*pb++;/
}//MergeList_Sq

也可以使用链表来实现

void MergeList L(LinkList &La,LinkList &Lb,LinkList &Lc) {  pa=La->next;pb=Lb->next;  pc=Lc=La;  while(pa &pb){  if(pa->data<=pb->data){pc->next=pa;pc=pa;pa=pa->next;}  else (pc->next=pb;pc=pb;pb=pb->next;}  pc->next=pa?pa:pb;  delete Lb;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/50171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 uPlot.js 的分段彩色条形图

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 uPlot.js 的分段彩色条形图 应用场景 分段彩色条形图广泛应用于数据可视化领域&#xff0c;用于展示数据的分布和趋势。它可以通过不同的颜色来表示数据的不同范围&#xff0c;帮助用户快速识别和理解数…

苹果手机微信拉黑了怎么恢复?简单3招,找回好友!

我们平时在使用微信和朋友交往的过程中&#xff0c;难免会产生一些摩擦&#xff0c;有时候我们可能因为一时冲动或误会而误将好友拉入黑名单。但当冷静下来&#xff0c;想要找回那份友谊时&#xff0c;该怎么办呢&#xff1f;别急&#xff0c;这里有3招简单又实用的方法&#x…

React间的组件通信

一、父传子&#xff08;props&#xff09; 步骤 父组件传递数据&#xff0c;子组件标签身上绑定属性子组件接收数据&#xff0c;props的参数 // 子组件 function Son(props) {return (<div>this is Son, {props.name}</div>) }// 父组件 function App() {const n…

WebGIS的地图渲染|SVG|Canvas|Canvas

说到地图&#xff0c;平时我们使用过百度地图、高德地图、腾讯地图等&#xff0c;如果涉及地图开发需求&#xff0c;也有很多选择&#xff0c;如前面提到的几个地图都会提供一套JS API&#xff0c;此外也有一些开源地图框架可以使用&#xff0c;如OpenLayers、Leaflet、Mapbox、…

EasyExcel 初使用—— Java 实现多种写入 Excel 功能

前言 大家好&#xff0c;我是雪荷。之前有一篇博客&#xff08;EasyExcel 初使用—— Java 实现读取 Excel 功能_java easyexcel.read-CSDN博客&#xff09;介绍了 Java 如何读取 Excel 表格&#xff0c;那么此篇博客就和大家介绍下 Java 如何利用 EasyExcel 写入 Excel。 Ea…

使用阿里云云主机通过nginx搭建文件服务器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、准备基础环境二、安装配置nginx三、阿里云安全组配置安全组配置 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4ee96f38312e4771938e40f463987…

React Router-v6.25.1

以下例子是根据vitereactts构建的&#xff0c;使用路由前先安装好这些环境&#xff01;&#xff01;&#xff01;&#xff01; 1、路由的简单使用 首先要创建一个浏览器路由器并配置我们的第一个路由。这将为我们的 Web 应用启用客户端路由。 该main.jsx文件是入口点。打开它…

数字看板:跨行业需求下的创新与升级

在当今这个数据驱动的时代&#xff0c;数字看板作为信息展示与决策支持的重要工具&#xff0c;正逐步渗透到各行各业之中。从智慧城市到智能制造&#xff0c;从金融分析到医疗健康&#xff0c;数字看板以其直观、动态、高效的特点&#xff0c;成为了连接数据与决策者的桥梁。本…

Linux系列--shell编程一

一、Linux系统结构 一、内核层 内核是Linux系统的核心部分&#xff0c;它负责管理系统各种硬件设备、文件系统、内存管理和进程管理等核心任务。Linux内核设计了良好的模块化结构&#xff0c;可以动态地加载和卸载内核模块&#xff0c;这使得内核可以兼容各种不同的硬件设备和…

基于联咏 NT98692芯片赋能边缘计算IP摄像机与XVR监控系统解决方案

联咏 NT98692 是一款新世代整合度极高的 SoC&#xff0c;具有高影像品质、低位元率、低功耗&#xff0c;针对 8Kp30 边缘运算 IP 摄影机与后端监控系统 XVR 应用。此 SoC 整合了 ARM Quad Cortex A73 CPU 核心、新一代 ISP 和 AI ISP、H.265/H.264 视讯压缩编解码器、DSP、高效…

C++ primer plus 第16章string 类和标准模板库, 函数符概念

C primer plus 第16章string 类和标准模板库, 函数符概念 C primer plus 第16章string 类和标准模板库, 函数符概念 文章目录 C primer plus 第16章string 类和标准模板库, 函数符概念16.5.1 函数符概念程序清单16.15 functor.cpp 16.5.1 函数符概念 正如 STL定义了容器和迭代…

【面试题】MySQL `EXPLAIN`的`Extra`字段:深入解析查询优化的隐藏信息

MySQL EXPLAIN的Extra字段&#xff1a;深入解析查询优化的隐藏信息 引言 在MySQL的EXPLAIN输出中&#xff0c;Extra字段提供了关于查询执行计划的额外信息。这些信息对于理解查询的内部工作机制和优化查询性能至关重要。本文将详细解析Extra字段中常见的几个关键指标&#xf…

k210 图像操作详解(一)(直线检测、边缘检测、色块追踪)

1、直线检测 ##################################################################################################### # file main.py # author 正点原子团队(ALIENTEK) # version V1.0 # date 2024-01-17 # brief image图像特征检测实…

数据结构和算法入门

1.了解数据结构和算法 1.1 二分查找 二分查找&#xff08;Binary Search&#xff09;是一种在有序数组中查找特定元素的搜索算法。它的基本思想是将数组分成两半&#xff0c;然后比较目标值与中间元素的大小关系&#xff0c;从而确定应该在左半部分还是右半部分继续查找。这个…

基于 HTML+ECharts 实现智慧安防数据可视化大屏(含源码)

构建智慧安防数据可视化大屏&#xff1a;基于 HTML 和 ECharts 的实现 随着科技的不断进步&#xff0c;智慧安防系统已经成为保障公共安全的重要工具。通过数据可视化&#xff0c;安防管理人员可以实时监控关键区域的安全状况、人员流动以及设备状态&#xff0c;从而提高应急响…

在oracle下创建普通视图和物化视图

1.创建普通试图 CREATE OR REPLACE VIEW FAST_BALANCE_TAB_VIEW AS SELECT * FROM DUAL; 2.创建物化视图 create materialized view FAST_BALANCE_TAB_MVVIEW REFRESH FORCE ON DEMAND START WITH SYSDATE(2/(24*3600)) AS select * from Fast_Balance_Tab_View fidcard;…

XSS攻击与CSRF攻击

XSS攻击 XSS&#xff08;Cross Site Scripting&#xff0c;跨站脚本攻击&#xff09;&#xff0c;是指攻击者利用站点的漏洞&#xff0c;在表单提交时&#xff0c;在表单内容中加入一些恶意脚本&#xff0c;当其他正常用户浏览页面&#xff0c;而页面中刚好出现攻击者的恶意脚…

ffmpeg更改视频的帧率

note 视频帧率调整 帧率(fps-frame per second) 例如&#xff1a;原来帧率为30&#xff0c;调整后为1 现象&#xff1a;原来是每秒有30张图像&#xff0c;调整后每秒1张图像&#xff0c;看着图像很慢 实现&#xff1a;在每秒的时间区间里&#xff0c;取一张图像…

【数据结构】手把手教你单链表(c语言)(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;数据结构 目录 前言 1.单链表的概念与结构 2.单链表的结构定义 3.单链表的实现 3.1 单链表的方法声明 3.2 单链表方法实现 3.2.1 打印链表 3.2.2 创建新…

四、GD32 MCU 常见外设介绍(8)SPI 模块介绍

串行外设接口&#xff08;Serial Peripheral Interface&#xff0c;缩写为 SPI&#xff09; 提供了基于SPI 协议的数据发送和接收功能&#xff0c; 可以工作于主机或从机模式。 SPI 接口支持具有硬件 CRC 计算和校验的全双工和单工模式。 8.1.SPI 基础知识 SPI 物理层 SPI接…