当前位置: 首页 > news >正文

【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】

目录😋

任务描述

相关知识

测试说明

我的通关代码:

测试结果:


任务描述

本关任务:编写一个程序实现单链表的基本运算。

相关知识

为了完成本关任务,你需要掌握:初始化线性表、销毁线性表、判定是否为空表、求线性表的长度、输出线性表、求线性表中某个数据元素值、按元素值查找、插入数据元素、删除数据元素等。

测试说明

平台会对你编写的代码进行测试:

测试输入:
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;
}

测试结果:

在这里插入图片描述

http://www.lryc.cn/news/506112.html

相关文章:

  • 设计模式之桥接模式:抽象与实现之间的分离艺术
  • 网络隧道与代理
  • 游戏关卡分析:荒野大镖客2雪山终战
  • Java 中的 LocalDateTime、DateTime 和 Date 的区别解析
  • MATLAB引用矩阵元素的几种方法
  • Linux、File System、Linux基本常用命令
  • 大数据治理:开启数据价值挖掘之旅
  • Linux排查cpu运行负载过高
  • Cobalt Strike 4.8 用户指南-第十四节 Aggressor 脚本
  • C++并发与多线程(高级函数async)
  • 安卓课设版算法计算器
  • X-Forwarded-For注入漏洞
  • Linux - MySQL迁移至一主一从
  • 《变形金刚:赛博坦的陨落》游戏启动难题:‘buddha.dll’缺失的七大修复策略
  • 51c嵌入式~单片机~合集2
  • java Resource 记录
  • Avalonia 开发环境准备
  • C# 中 Console.WriteLine($“{DateTime.Now.Date}“); win 和 docker容器输出不同
  • 回型矩阵:JAVA
  • 从零开始学习 sg200x 多核开发之 sophpi 编译生成 fip.bin 流程梳理
  • python--在服务器上面创建conda环境
  • day15 python(3)——python基础(完结!!)
  • /:087启动游戏时提示丢失”d3dx···.dll””VCOMP···.dll”
  • 利用PHP和phpSpider进行图片爬取及下载
  • 企业架构划分探讨:业务架构与IT架构的利与弊
  • Java设计模式 —— 【结构型模式】桥接模式详解
  • MySQL学习之DDL操作
  • 游戏AI实现-寻路算法(A*)
  • spring学习(spring的IoC思想、spring容器、spring配置文件、依赖注入(DI)、BeanProxy机制(AOP))
  • 谁说C比C++快?