线性表应用(非递减合并、分解链表、删除线性表)

         将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其它的存储空间。表中允许有重复的数据。

#include<iostream>
using namespace std;
typedef struct list
{int data;list* next;
}list,*linklist;
void Createlist(linklist& l)
{l = new list;l->next = NULL;linklist p,r;r = l;for (int i = 0; i < 5; i++){p = new list;cin >> p->data;r->next = p;r = p;}p->next = NULL;
}
void Addlist(linklist& L1, linklist& L2)
{linklist L3, pa, pb,p;pa = L1->next;pb = L2->next;L3 = L1, L3->next = NULL;while (pa || pb){if (pa==NULL){p = pb;pb = pb->next;}else if (pb==NULL){p = pa;pa = pa->next;}else if (pa->data <= pb->data){p = pa;pa = pa->next;}else{p = pb;pb = pb->next;}p->next = L3->next;L3->next = p;}delete L2;
}
void Printlist(linklist& l)
{linklist p;p = l->next;while (p){cout << p->data<<" ";p = p->next;}
}
int main()
{linklist L1, L2;cout << "输入第一个链表:" << endl;Createlist(L1);cout << "输入第二个链表:" << endl;Createlist(L2);Addlist(L1, L2);cout << "合并链表:" << endl;Printlist(L1);
}

       设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求B、C表利用A表的结点)。

#include<iostream>
using namespace std;
typedef struct list
{int data;list* next;
}list,*linklist;
void Createlist(linklist& l)
{l = new list;l->next = NULL;linklist p,r;r = l;for (int i = 0; i <10; i++){p = new list;cin >> p->data;r->next = p;r = p;}p->next = NULL;
}
void Separatelist(linklist& L1, linklist& L2, linklist& L3)
{L3 = new list;L3->next = NULL;linklist p,r;p = L1->next;L2 = L1;L2->next = NULL;while (p){r = p->next;if (p->data < 0){p->next = L2->next;L2->next = p;}else{p->next = L3->next;L3->next = p;}p = r;}
}
void Printlist(linklist& l)
{linklist p;p = l->next;while (p){cout << p->data<<" ";p = p->next;}cout << endl;
}
int main()
{linklist L1, L2,L3;cout << "输入第一个链表:" << endl;Createlist(L1);Separatelist(L1, L2, L3);cout << "拆分链表:" << endl;Printlist(L2);Printlist(L3);
}

 

       已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O (1)的算法,该算法删除线性表中所有值为ite m的数据元素。

#include<iostream>
#define maxsize 100
using namespace std;
typedef struct node
{int data;
}Node;
typedef struct
{Node* elem;int length;
}Sqlist;
void Initlist(Sqlist& L)
{L.elem = new Node[maxsize];L.length = 0;
}
int Createlist(Sqlist& L)
{if (L.length == maxsize) return 0;for (int i = 0; i < 10; i++){cin >> L.elem[i].data;L.length++;}return 1;
}
void Deletelist(Sqlist& L, Node e)
{int k = 0;for (int i = 0; i < L.length; i++){if (L.elem[i].data != e.data){L.elem[k].data = L.elem[i].data;k++;}}L.length = k;
}
void Printlist(Sqlist L)
{for (int i=0;i<L.length;i++){cout << L.elem[i].data << " " ;}cout << endl;
}
int main()
{Sqlist A;Initlist(A);Createlist(A);cout << "原线性表:" << endl;Printlist(A);cout << "输入要删除的一个数:" << endl;Node n;cin >> n.data;Deletelist(A,n);Printlist(A);
}

 

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

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

相关文章

【李沐深度学习笔记】线性代数

课程地址和说明 线性代数p1 本系列文章是我学习李沐老师深度学习系列课程的学习笔记&#xff0c;可能会对李沐老师上课没讲到的进行补充。 线性代数 标量 标量&#xff08;scalar&#xff09;&#xff0c;亦称“无向量”。有些物理量&#xff0c;只具有数值大小&#xff0c…

华为云云耀云服务器L实例评测|2核2G跑mysql性能测试

前言 上一次我们介绍了华为云云耀云服务器L实例的基本信息&#xff0c;从购买到特色都做了简要介绍。但是 很多人看到这个配置又产生了迟疑&#xff0c;主要是因为云耀现在提供的全系是2核&#xff0c;性能吃得消吗&#xff1f;今天我们就来做一个性能测试 环境准备 因为我们…

2023华为杯数学建模研赛思路分享——最全版本A题深度解析

问题回顾&#xff1a; WLAN网络信道接入机制建模 1. 背景 无线局域网&#xff08;WLAN, wireless local area network&#xff09;也即Wi-Fi广泛使用&#xff0c;提供低成本、高吞吐和便利的无线通信服务。基本服务集&#xff08;BSS, basic service set&#xff09;是WLAN的…

C++标准模板库——vector的使用及其模拟实现

目录 一. vector的介绍 1.vector的介绍 二.vector的使用 vector中常见接口的介绍vector的构造和析构函数vector的三种遍历方式 三.vector的模拟实现 vector的增删查改vector容器的容量变化和大小增减vector迭代器失效问题vector的小框架 构造函数和析构函数迭代器和operat…

有什么推荐使用的企业上网行为管理软件?

在当今信息化社会&#xff0c;企业的上网行为管理越来越重要。企业上网行为软件是一种能够监控和管理企业员工上网行为的工具&#xff0c;它可以帮助企业更好地管理网络资源&#xff0c;提高工作效率&#xff0c;保护企业信息安全&#xff0c;并符合相关的法律法规。本文将深入…

尝试访问启动磁盘设置时出错怎么办?

当出现“尝试访问启动磁盘设置时出错”这样的错误提示&#xff0c;而且启动转换控制面板打不开了时&#xff0c;是无法开启触摸板功能的。我们可以使用以下方法来解决问题。 1. 在Windows桌面左下角搜索框输入“计算机管理”后点击“打开”。 2. 点击“本地用户与组”&#xff…

[论文阅读]A ConvNet for the 2020s

摘要 视觉识别的咆哮的20年代开始于ViTs的引入&#xff0c;它很快取代了卷积神经网络&#xff0c;成为最先进的图像分类模型。另一方面&#xff0c;一个原始的ViT在用于一般的比如目标识别和语义分割的计算机视觉任务的时候面临困难。层次Transformer(例如&#xff0c;Swin-Tr…

新手小白如何入门学习CTF?【网络安全】

最近有很多新手小白私信我&#xff1a;如何学习CTF&#xff1f;新手小白应该怎么入门CTF&#xff1f;想打CTF&#xff0c;但是没有思路怎么办&#xff1f; 昨天下班之后&#xff0c;花了几个小时&#xff0c;整理了一下CTF学习的思路与方法&#xff0c;分享给大家&#xff0c;如…

十一、流程控制-if-switch

流程控制 1.流程控制1.1.复合语句1.2.if语句★1.2.1.简单条件的if语句★1.2.2.if...else语句★1.2.3.if...else if多分支语句★1.2.4.if语句的嵌套★ 1.3.switch多分支语句★1.3.1.switch语句通用语法★1.3.2.switch表达式★训练一★训练二★ ————————————————…

Linux 安装 git

一 . 安装git 方式1&#xff1a;通过yum 安装 yum -y install git查看是否安装成功 git --version安装目录在&#xff1a;/usr/libexec/git-core yum 安装有一些缺点 &#xff1a;不能自己指定安装目录、安装版本 方式 2 下载tar.gz 包 配置 查看git 版本&#xff1a;Index…

KF32A学习笔记(一):工程导入、编译烧录方法(KF32 IDE+ KF32 PRO)

目录 概述KF32 IDE打开现有项目工程1.工程导入2.编译工程3.下载程序 KF32 PRO 概述 本文主要是对KF32A150芯片程序的编译、烧录方法进行说明。针对开发过程中的编译烧录和无代码情况下的烧录两种场景&#xff0c;需要安装ChipON PRO KF32和ChipON IDE KF32两个上位机工具&…

【面试经典150 | 数组】跳跃游戏 II

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;贪心 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等内容…

FBX文件结构解读【文本格式】

FBX 格式几乎受到所有 3D 引擎的支持&#xff0c;是 Autodesk 开发的 3D 模型的专有格式。它支持顶点、索引、法线、UV坐标、材质和动画。 FBX还支持许多其他类型的信息&#xff0c;但它们对游戏引擎几乎没有用处。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 有两种…

9.基于粤嵌gec6818开发板小游戏2048的算法实现

2048源码&#xff1a; 感兴趣的可以去了解一下2048优化算法&#xff1a; 基于蒙特卡罗树搜索的_2048_游戏优化算法_刘子正 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/mman.h> #incl…

程序员自由创业周记#12:999%

下载量涨了999% 在此之前&#xff0c;我的Apple开发账号上只有一个产品-学伟扫描&#xff0c;因为没有推广&#xff0c;只靠自然流量&#xff0c;每天的下载量寥寥无几&#xff0c;这种稳定无人问津的状态断断续续保持了4年。 之前的周记里介绍了最近在做创业的第二个项目-学伟…

PHP 如何创建一个 composer 包 并在 项目中使用自己的 composer sdk 包

第一步创建一个composer SDK项目 创建一个 composer.json文件或使用 命令 &#xff08;如果不清楚怎么弄 直接跳过即可&#xff0c;一般都会默认配置&#xff09; composer init这是生成的composer.json文件 将自己要使用的包添加到 require 中&#xff0c;如果没有require则…

mac安装运行superset及踩坑解决过程

介绍 Apache Superset 是一个现代的企业级商业智能 Web 应用程序。它快速、轻量、直观&#xff0c;并加载了各种选项&#xff0c;使所有技能的用户都可以轻松探索和可视化他们的数据&#xff0c;从简单的饼图到高度详细的 Deck.gl 地理空间图表。 安装 首先安装自制homebrew安…

1. PCIE基础入门知识

GT/s 是"每秒十亿次传输" 时间版本速率2003Pcie 1.02.5GT/s2006PCIE 2.05GT/s2010PCIE 3.08GT/s2017PCIE 4.016GT/s 高速接口&#xff1a;雷电接口&#xff08;PCIEx4接口 &#xff09; PCIE接口 工作模式&#xff1a;Endpoint 和 Root Port。 Endpoint&#xff0…

Si314 低功耗 14 通道电容触摸传感器,软硬件兼容替代GTX314L

Si314 是一款具有自动灵敏度校准功能的 14 通道电容传感器&#xff0c;其工作电压范围为 1.8~5.5V。 Si314 设置休眠模式来节省功耗&#xff0c;此时&#xff0c;功耗电流为 10uA3.3V。Si314 各个感应通道可实现独立使能、校准、灵敏度调节&#xff0c;可以确保可靠性&#xff…

Terminnal will be login out after 20 second

锐捷交换机&#xff0c;命令敲着敲着 &#xff0c;就提示20秒后将中断 &#xff0c;show ip ssh 查看也一下也没有什么特殊的。 于是查看了一下VTY下的配置 absolute-timeout 5 ,这句话是什么意思呢 &#xff1f; 5分钟强制退出 &#xff01; 改进方法&#xff1a; (config)#…