【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
目录😋
任务描述
相关知识
测试说明
我的通关代码:
测试结果:
任务描述
本关任务:编写一个程序实现单链表的基本运算。
相关知识
为了完成本关任务,你需要掌握:初始化线性表、销毁线性表、判定是否为空表、求线性表的长度、输出线性表、求线性表中某个数据元素值、按元素值查找、插入数据元素、删除数据元素等。
测试说明
平台会对你编写的代码进行测试:
测试输入:
3
4
预期输出:
(1)初始化单链表h
(2)依次采用尾插法插入a,b,c,d,e元素
(3)输出单链表h:a b c d e
(4)单链表h长度:5
(5)单链表h为非空
(6)单链表h的第3个元素:c
(7)元素a的位置:1
(8)在第4个元素位置上插入f元素
(9)输出单链表h:a b c f d e
(10)删除h的第3个元素
(11)输出单链表h:a b f d e
(12)释放单链表h
开始你的任务吧,祝你成功!
我的通关代码:
#include <iostream>#include <string>
using namespace std;
#define MAX_SIZE 100typedef char ElemType;typedef struct {ElemType data[MAX_SIZE];int length;
} SeqList;void InitList(SeqList &L) { L.length = 0; }void PrintList(SeqList L) {for (int i = 0; i < L.length; i++) {cout << L.data[i] << " ";}cout << endl;
}
int InsertList(SeqList *L, int i, ElemType e) {if (i < 1 || i > L->length + 1 || L->length >= MAX_SIZE)return 0;for (int j = L->length; j >= i; j--) {L->data[j] = L->data[j - 1];}L->data[i - 1] = e;L->length++;return 1;
}bool GetElem(SeqList L, int i, ElemType &e) {if (i < 1 || i > L.length)return false;e = L.data[i - 1];return true;
}int LocateElem(SeqList L, ElemType e) {for (int i = 0; i < L.length; i++) {if (L.data[i] == e)return i + 1;}return 0;
}bool ListInsert(SeqList &L, int i, ElemType e) {if (i < 1 || i > L.length + 1)return false;for (int j = L.length; j >= i; j--) {L.data[j] = L.data[j - 1];}L.data[i - 1] = e;L.length++;return true;
}bool ListDelete(SeqList &L, int i, ElemType &e) {if (i < 1 || i > L.length)return false;e = L.data[i - 1];for (int j = i; j < L.length; j++) {L.data[j - 1] = L.data[j];}L.length--;return true;
}int main() {SeqList L;InitList(L);int pos1, pos2;cin >> pos1 >> pos2;cout << "(1)初始化单链表h" << endl;char elements[] = {'a', 'b', 'c', 'd', 'e'};for (int i = 0; i < 5; i++) {InsertList(&L, i + 1, elements[i]);}cout << "(2)依次采用尾插法插入a,b,c,d,e元素" << endl;cout << "(3)输出单链表h:";PrintList(L);cout << "(4)单链表h长度:" << L.length << endl;cout << "(5)单链表h为非空" << endl;ElemType e;if (GetElem(L, pos1, e)) {cout << "(6)单链表h的第" << pos1 << "个元素:" << e << endl;}int pos = LocateElem(L, 'a');cout << "(7)元素a的位置:" << pos << endl;ListInsert(L, pos2, 'f');cout << "(8)在第" << pos2 << "个元素位置上插入f元素" << endl;cout << "(9)输出单链表h:";PrintList(L);ListDelete(L, pos1, e);cout << "(10)删除h的第" << pos1 << "个元素" << endl;cout << "(11)输出单链表h:";PrintList(L);cout << "(12)释放单链表h";return 0;
}
测试结果:


相关文章:
【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:编写一个程序实现单链表的基本运算。 相关知识 为了完成本关任务,你需要掌握:初始化线性表、销毁线性表、判定是否为空表、求线性…...
设计模式之桥接模式:抽象与实现之间的分离艺术
~犬📰余~ “我欲贱而贵,愚而智,贫而富,可乎? 曰:其唯学乎” 桥接模式概述与角色组成 想象一下你家里的电视遥控器,无论是索尼还是三星的电视机,遥控器的按键功能都差不多࿱…...
网络隧道与代理
文章目录 网络隧道网络代理参考 网络隧道 使用隧道的原因是在不兼容的网络上传输数据,或在不安全网络上提供一个安全路径。网络隧道的一个典型特征就是封装报文和对报文加密。如下是两个典型的案例:IPv4到IPv6的迁移、VPN。 图3.1 IPv4到IPv6的迁移 图…...
游戏关卡分析:荒野大镖客2雪山终战
1、相关剧情 主角约翰一家在农场过着悠闲的日子,突然平静被打破, 女枪手来报信,在某小镇找到了迈卡的消息。 于是激发了约翰的满腔怒气,不顾妻子的反对,坚决要出战, 要彻底歼灭迈卡,为亚瑟…...
Java 中的 LocalDateTime、DateTime 和 Date 的区别解析
目录 前言 一、LocalDateTime:新的 Java 8 日期时间 API 1.1 LocalDateTime 简介 1.2 设计理念 1.3 适用场景 1.4 示例代码 二、DateTime:没有明确标准的类 2.1 DateTime 的模糊性 2.2 适用场景 三、Date:老旧的日期时间类 3.1 Da…...
MATLAB引用矩阵元素的几种方法
引用矩阵元素可以通过索引,也可以通过逻辑值 索引 通过引用元素在矩阵中的位置来提取元素,例如: - 逻辑值 通过某种逻辑运算来使得要提取的值变为逻辑 1 1 1,用 A ( ) A() A()提取即可, A A A为原矩阵的名称。 例如&…...
Linux、File System、Linux基本常用命令
一、File System 文件系统 Linux文件系统是操作系统用来组织、管理和存储问价及目录结构的方式。它不仅定义了如何将数据保存到磁盘上,还规定了用户如何与这些数据进行交互。 1、层次结构 根目录(/):所有文件和目录都从根目录开始…...
大数据治理:开启数据价值挖掘之旅
在当今数字化时代,数据呈爆炸式增长,大数据已经渗透到各个行业和领域,成为企业竞争和创新的关键驱动力。而大数据治理作为有效管理和利用大数据资源的核心手段,在教学领域也具有至关重要的地位。 一、大数据治理的内涵与重要性 大…...
Linux排查cpu运行负载过高
方式1:top 先输入top再输入1,查看 %CPU 列,找出占用 CPU 最多的进程 作用:切换显示每个逻辑 CPU 的使用情况。效果: 如果系统有多个 CPU 核心或超线程逻辑处理器,按下 1 会使得 top 分别显示每个逻辑 CPU…...
Cobalt Strike 4.8 用户指南-第十四节 Aggressor 脚本
14.1、什么是Aggressor脚本 Aggressor Script 是Cobalt Strike 3.0版及更高版本中内置的脚本语言。Aggressor 脚本允许你修改和扩展 Cobalt Strike 客户端。 历史 Aggressor Script 是 Armitage 中开源脚本引擎Cortana的精神继承者。Cortana 是通过与 DARPA 的网络快速跟踪计…...
C++并发与多线程(高级函数async)
async 在 C 中,async 关键字用于实现异步编程,它允许你定义异步操作,这些操作可以在后台执行,而不会阻塞当前线程。这是 C11 引入的特性,与 std::async 函数和 std::future 类一起使用。与thread函数模板的区别在于as…...
安卓课设版算法计算器
安卓课设版算法计算器(HNUST) 前言: 如果只想看函数使用说明请跳转到“四、使用函数介绍” 该版本为课设版,富含多个界面,是前版的plus版本,进行了更多的复杂化操作,故因此会觉得对于计算器有点…...
X-Forwarded-For注入漏洞
0x00环境介绍 靶机http://219.153.49.228:48033,通过注入完成找到网站的key。 1|00x01复现过程 1.访问网站使用admin/admin登入,用burpsuite截包寻找注入点 >>截到的包,正常放包回显内容 >>加X-forwarded-for:1.1.1.1回显IP数据改变&…...
Linux - MySQL迁移至一主一从
Linux - MySQL迁移至一主一从 迁移准备安装MySQL ibd文件迁移原服务器操作目标服务器操作 一主一从增量同步异常解决结尾 首先部分单独安装MySQL,请参考Linux - MySQL安装,迁移数据量比较大约400G左右且网络不通故使用文件迁移,需开启一段时间…...
《变形金刚:赛博坦的陨落》游戏启动难题:‘buddha.dll’缺失的七大修复策略
《变形金刚:赛博坦的陨落》游戏启动时提示buddha.dll缺失:原因与解决方案 作为一名软件开发从业者,我在日常工作中经常遇到电脑游戏运行时出现的各种问题,如文件丢失、文件损坏和系统报错等。今天,我们就来探讨一下《…...
51c嵌入式~单片机~合集2
我自己的原文哦~ https://blog.51cto.com/whaosoft/12362395 一、不同的电平信号的MCU怎么通信? 下面这个“电平转换”电路,理解后令人心情愉快。电路设计其实也可以很有趣。 先说一说这个电路的用途:当两个MCU在不同的工作电压下工作&a…...
java Resource 记录
Java 注解 Resource 是一个标准的 Java 注解,用于注入资源。它可以用于注入任何资源,如文件、数据库连接、用户定义的资源等。它可以通过名称或类型进行注入。 当你想要注入一个bean到你的类中时,你可以使用Resource注解。 解决方案1&#…...
Avalonia 开发环境准备
总目录 前言 介绍如何搭建 Avalonia 开发环境。 一、在线开发环境搭建 请先安装您选择的受支持的IDE。Avalonia 支持 Visual Studio、Rider 和 Visual Studio Code。 详见:https://docs.avaloniaui.net/zh-Hans/docs/get-started/install 1. 使用 Visual Studio 20…...
C# 中 Console.WriteLine($“{DateTime.Now.Date}“); win 和 docker容器输出不同
Console.WriteLine($"{DateTime.Now.Date}"); //windowns输出:2024/12/10 0:00:00 //docker容器输出:12/10/2024 00:00:00 这是由于 不同的文化区域(CultureInfo)设置 导致的时间格式差异。在 Windows 系统…...
回型矩阵:JAVA
解题思路: 通过定义四条边界;top,left,right,bottom,来循环,当top>bottom&&left>right的时候循环终止 循环结束的条件: 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述…...
PostGIS中ST_Area计算面积时单位转换的实用技巧
1. 为什么ST_Area在WGS84坐标系下计算结果不对劲? 第一次用PostGIS的ST_Area函数计算地理围栏面积时,我盯着屏幕上那个小得离谱的数字愣了半天——0.000002?这还没我家卫生间大!后来才发现,原来90%的新手都会在这个坑里…...
为什么92%的车载Java应用在-40℃环境崩溃?:嵌入式JRE热稳定性加固实战手册
第一章:车载Java应用低温崩溃现象全景透视在-20℃至-30℃的严寒环境下,车载信息娱乐系统(IVI)中基于Android Framework构建的Java应用频繁出现ANR、SIGSEGV及ClassLoader初始化失败等非预期终止行为。此类崩溃并非由业务逻辑缺陷直…...
别再死磕手册了!用Vivado 2023.1手把手教你配置Aurora 64B/66B IP核(附完整复位时序图)
Vivado 2023.1实战:Aurora 64B/66B IP核配置全流程解析 在FPGA高速通信领域,Aurora协议凭借其轻量级、高带宽的特性成为众多工程师的首选。但对于初学者而言,官方文档PG074中复杂的复位时序和参数配置往往让人望而生畏。本文将基于Vivado 202…...
如何快速上手LeaguePrank:英雄联盟段位修改工具完整实战指南
如何快速上手LeaguePrank:英雄联盟段位修改工具完整实战指南 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 还在为英雄联盟单调的段位显示感到无聊吗?LeaguePrank是一款开源工具,让你轻松修…...
MelonLoader完全解决方案:Unity游戏Mod加载实战指南
MelonLoader完全解决方案:Unity游戏Mod加载实战指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 当你兴致勃勃地…...
Ubuntu下USRP X300 FPGA固件降级实录:从‘need 38 but got 39’报错到完美兼容GNURadio
Ubuntu下USRP X300 FPGA固件降级实战:从版本冲突到完美兼容GNURadio的完整指南 当USRP X300的FPGA固件版本与GNURadio所需的版本不匹配时,终端里那个刺眼的"need 38 but got 39"报错足以让任何软件无线电开发者抓狂。这种版本冲突问题在Ubuntu…...
InstantID社区翻译计划:多语言支持的实现与贡献方式
InstantID社区翻译计划:多语言支持的实现与贡献方式 【免费下载链接】InstantID 项目地址: https://ai.gitcode.com/hf_mirrors/InstantX/InstantID InstantID作为一款创新的AI人脸编辑工具,正通过社区翻译计划打破语言壁垒,让全球用…...
Java集合判空全攻略:从原生方法到Apache Commons工具类对比
Java集合判空全攻略:从原生方法到Apache Commons工具类对比 在Java开发中,集合判空是最基础却又最容易出错的环节之一。一个看似简单的判空操作,背后可能隐藏着NPE风险、性能损耗甚至逻辑漏洞。本文将深入剖析Java原生判空方法与Apache Commo…...
OpenClaw多模态技能库:Qwen3.5-9B-AWQ-4bit实现10种图片处理场景
OpenClaw多模态技能库:Qwen3.5-9B-AWQ-4bit实现10种图片处理场景 1. 为什么需要多模态技能库? 去年我接手了一个个人项目,需要批量处理几百张产品照片。手动用PS抠图、调色、加文字,花了两周才完成。当时就想:如果能…...
Windows 11 上安装 MinGW-w64 并运行 LVGL SDL 模拟器
目前最推荐的方式是使用 MSYS2。它安装简单、包管理方便(pacman),而且能直接安装 SDL2,避免手动复制头文件和库的麻烦。 以下是完整、推荐的步骤(2026 年最新实践): 1. 安装 MSYS2(…...
