数据结构链表实验报告

news/2025/3/16 21:16:42/文章来源:https://www.cnblogs.com/kinthyu/p/18775657

集美大学课程实验报告-实验2:线性表

项目名称 内容
课程名称 数据结构
班级 网安2411
指导教师 郑如滨
学生姓名 于鸿硕
学号 202421336018
实验项目名称 实验2:线性表
上机实践日期
上机实践时间 2学时


一、目的(本次实验所涉及并要求掌握的知识点)

  • 学习链表的创建方法 学习链表的逆置、插入和删除功能

二、实验内容与设计思想

#include <iostream>
using namespace std;return 0

题目1:头插法或尾插法创建链表

函数代码

//头插法:
void CreateListF(LinkList &L,int n)
{L=new LNode;L->next=nullptr;int inputdata;for(int i=0;i<n;i++){cin>>inputdata;LNode* newNode=new LNode;newNode->data=inputdata;newNode->next=L->next;L->next=newNode;}
}//尾插法:
void CreateListR(LinkList &L, int n)
{L=new LNode;L->next=nullptr;LNode *tail=L;int inputdata;for(int i=0;i<n;i++){cin>>inputdata;LNode *newNode=new LNode;newNode->data=inputdata;newNode->next=nullptr;tail->next=newNode;tail=newNode;}
}//输出链表:
void DispList(LinkList L)
{LNode* current=L->next;int a=0;while (current!=nullptr){a=1;cout<<current->data;if(current->next!=nullptr){cout<<" ";}current=current->next;}if(a==0)cout<<"空链表!";
}

**题目2:链表逆置*:

void ReverseList(LinkList &L)
{LNode *prev = nullptr;LNode *curr = L->next;LNode *next = nullptr;while (curr != nullptr) {next = curr->next;curr->next = prev;prev = curr;curr = next;}L->next = prev; 
}

题目3:有序链表的插入与删除

void ListInsert(LinkList &L,ElemType e)
{LNode *pre=L;LNode *p=L->next;while(p!=nullptr&&p->data<e){pre=p=p;p=p->next;}LNode *newNode=new LNode;newNode->data=e;newNode->next=p;pre->next=newNode;
}void ListDelete(LinkList &L,ElemType e)
{LNode *pre=L;LNode *p=L->next;while (p!=nullptr&&p->data!=e){pre = p;p = p->next;}if(p!=nullptr){pre->next=p->next;delete p;}else{cout<<e<<"找不到!"<<endl;}
}

三、实验使用环境(本次实验所使用的平台和相关软件)

以下请根据实际情况编写

  • 操作系统:Windows 11
  • 编程语言:C++
  • 开发工具:visual studio2022 &pintia
  • 编译器:g++

四、实验步骤和调试过程(实验步骤、测试数据设计、测试结果分析)

题目1:头插法和尾插法运行截图

本机运行截图
image-20250316200813141

PTA提交截图
image-20250316200558642


image-20250316202033883

题目2:链表逆置运行截图

image-20250316210803221

image-20250316203443073

题目3:有序链表的插入与删除

image-20250316210828579

image-20250316210234467


五、实验小结(实验中遇到的问题及解决过程、实验体会和收获)

遇到的问题及解决方法:

在删除链表元素这题中,链表全删情况需要在最后输出“空链表”,但我在编写代码中通过在删除函数中加入验证temp=null时会重复输出n次,而如果要实现只输出一次,按照我的理解应该要在displist函数里加入相关代码,但强加该函数会导致编译错误,该问题尚未解决

实验体会和收获:

学习了链表的两种创建方式,学习了有序链表的插入和删除元素,学习了链表通过迭代逆置的方法


六、附件(参考文献和相关资料)

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

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

相关文章

docker 安装 oracle database 问题记录

pre本地docker (WSL)安装运行 Oracle1. 镜像处理参考链接:https://www.cnblogs.com/wuchangsoft/p/18344847 oracle 镜像获取:https://container-registry.oracle.com/ords/f?p=113:10:::::: (Oracle官网,由于部分问题导致直接pull无法拉取) 阿里云,参考链接里有个个人19…

20242103 实验一《Python程序设计》实验报告

20242103 《Python程序设计》实验1报告 课程:《Python程序设计》 班级: 2421 姓名: 李雨虓 学号:20242103 实验教师:王志强 实验日期:2025年3月12日 必修/选修: 公选课 1.实验内容: 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序,并进行调试…

20241313 2024-2025-2 《Python程序设计》实验一报告

20241313 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2413 姓名: 刘鸣宇 学号:20241313 实验教师:王志强 实验日期:2025年3月12日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序…

mutatingwebhook的简单实例

一. k8s集群准备 这里不再赘述k8s集群搭建。主要注意参数:kubectl get po kube-apiserver-server -n kube-system -o yaml | grep plugin 预期结果为:- --enable-admission-plugins=NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook 至少要拥有两个参数…

Tauri新手向 - 基于LSB隐写的shellcode加载器

此篇是记录自己初次学习tauri开发工具,包含遇到的一些问题以及基本的知识,也给想上手rust tauri的师傅们一些小小的参考。此项目为保持免杀性暂不开源,希望各位师傅多多支持,反响可以的话后续会放出代码大家一起交流学习。ShadowMeld - 基于图像隐写技术的载荷生成框架 通过…

P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G(缩点)

P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G 题目背景 本题测试数据已修复。 题目描述 每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果 \(A\) 喜欢 \(B\),\(…

允许蜘蛛访问,屏蔽访客的php代码

大部分时候我们制作的泛目录需要屏蔽访客,php的优于js识别蜘蛛屏蔽,毕竟一个在服务器内运行后输出,一个在html中调用。 这里分享一段屏蔽游客查查看真实页面的php代码,直接命名为啥php文件,后在想要屏蔽游客的页面中引用(如:include /baidu.php;)就可以了,代码如下:&…

【程设の旅】第二次上机卡题复盘

python上机 其实很快就写完了,第五题有个坑,讲一下 05:奇偶ASCII值判断 描述 任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出NO 例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是66),则输出NO 输入 输入一个字符 输出 如果其ASCII值为奇数…

第二章课后习题

Tempconvent.py TempStr = input("请输入带有符号的温度值:") if TempStr[-1] in[F,f]: C = (eval(TempStr[0:-1])-32)/1.8 print("转换后的温度是{:.0f}C".format(C)) elif TempStr[-1] in[C,c]: F = 1.8*eval(TempStr[0:-1])+32 print("转换后的温…

30_正则练习题2

正则练习题正则含义1.1 基础正则 ^ 以什么开头,"^yuchao" 表示匹配以yuchao单词开头的行 $ 以什么结尾,"yuchao$",表示匹配以yuchao单词结尾的行 ^$ 组合符号,表示空行。逻辑解释就是以^开始,以$结尾的行 . 匹配任意且只有一个…

docker-compose 安装elasticsearch

安装版本 elasticsearch 8.14.1 拉取镜像 docker pull elasticsearch:8.14.1如需安装kibana 需要拉取对应版本的kibana镜像 docker pull kibana:8.14.1查看镜像是否安装成功 docker images配置docker-compose.yaml version: 3 services:es:# 镜像名称image: elasticsearch:8.14…