实验3-单链表

1、现单链表的主要基本操作,并写一个主程序验证;

代码

//1、现单链表的主要基本操作,并写一个主程序验证;
#include <iostream>
using namespace std;
typedef int ElemType;
typedef struct LNode{ElemType data;struct LNode *next;
}LNode,* LinkList;//算法2.6 初始化(构造一个空表 )
bool InitList_L(LinkList &L)
{L=new LNode;L->next=NULL;return true;
}
//算法2.11前插法创建单链表
void CreateList_L(LinkList &L,int n){LinkList p;p=new LNode;cin>>p->data;L->next=p;p->next=NULL;for(int i=0;i<n-1;i++){p=new LNode;cin>>p->data;p->next=L->next;L->next=p;}
}
//算法2.7单链表的取值
bool GetElem_L(LinkList L,int i,ElemType &e)
{LinkList p;int j=1;p=L->next;while(p&&j<i){p=p->next;++j;}if(!p||j>i) return false;e=p->data;return true;
}
//算法2.9 单链表的插入
bool ListInsert_L(LinkList &L,int i,ElemType e)
{LinkList s;	//指向插入的结点LinkList p; //移动指针p=L;int j=0;while(p&&j<i-1){p=p->next;++j;}if(!p||j>i-1) return false;s=new LNode;s->data=e;s->next=p->next;p->next=s;return true;
}
//算法2.10 单链表的删除
bool ListDelete_L(LinkList &L,int i)
{LinkList q,p;int j=0;p=L;while(p->next&&j<i-1){p=p->next;++j;}if(!(p->next)||j>i-1)return false;q=p->next;p->next=q->next;delete q;return true;
}
//后插法
void CreateList_R(LinkList &R,int n)
{LinkList p,tail;p=tail=R;for(int i=0;i<n;++i){p=new LNode;cin>>p->data;tail->next=p;tail=tail->next;p->next=NULL;}
}
//打印链表
void PrintList_L(LinkList L)
{LinkList p;p=L->next;while(p){cout<<p->data<<" ";p=p->next;}cout<<endl;
}
int main()
{LinkList L;InitList_L(L);	//初始化CreateList_L(L,5);//前插法cout<<"Your LinkList(L) is:"<<endl;PrintList_L(L);//输出链表,验证结果ElemType element;GetElem_L(L,5,element);//取值cout<<"Element geted is: "<<element<<endl;	//验证结果ListInsert_L(L,5,9999);//插入cout<<"After inserting, your LinkList(L) is:"<<endl;PrintList_L(L);//输出链表,验证结果ListDelete_L(L,5);//删除cout<<"After deleting, your LinkList(L) is:"<<endl;PrintList_L(L);//输出链表,验证结果LinkList R;InitList_L(R);CreateList_R(R,5);//后插法cout<<"your LinkList(R) is:"<<endl;PrintList_L(R);//输出链表,验证结果return 0;
}

Sample Input & Sample Output

1 2 3 4 5
Your LinkList(L) is:
5 4 3 2 1
Element geted is: 1
After inserting, your LinkList(L) is:
5 4 3 2 9999 1
After deleting, your LinkList(L) is:
5 4 3 2 1
1 2 3 4 5
your LinkList(R) is:
1 2 3 4 5

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

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

相关文章

一.算法基础

目录 1.算法基础 2.算法概念 3.时间复杂度--用来评估算法运行效率的一个式子 如何简单快速的判断算法复杂度? 4.空间复杂度 1.算法基础 2.算法概念 --静态动态 3.时间复杂度--用来评估算法运行效率的一个式子 ----一个单位!!! 1-在什么配置下运行(机器) 2-问题的规模…

头歌-十大经典排序算法

第1关&#xff1a;冒泡排序 任务描述 本关任务&#xff1a;实现冒泡排序算法&#xff0c;并将乱序数列变成升序。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.冒泡排序算法。 冒泡排序算法 冒泡排序重复地遍历待排序的数列&#xff0c;每次比较两个相…

①【Docker】Linux安装Docker容器教程

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ ①【Docker】Linux安装Docker容器教程 &#x…

slf4j 打印当前类和方法

spring initializr 自动包含依赖,也可以在 pom.xml 文件中添加 slf4j 的依赖,指定版本 例如我这边默认版本是 1.7.36 通过添加依赖修改版本为 1.7.32<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version…

JavaScript数组sort自定义排序

背景 刷LeetCode时&#xff0c;遇到一道简单的数组排序题&#xff1a; 问题 想着直接用js的数组sort自定义排序即可&#xff0c;奈何测试用例运行总是不通过&#xff0c;返回的一直都是原数组。 代码排查 复制代码到Firefox浏览器控制台运行&#xff0c;结果输出的是正确结果&a…

Nginx的日志怎么看,在哪看,access.log日志内容详解

Nginx 的日志文件通常位于服务器的文件系统中&#xff0c;具体位置可能因配置而异。以下是查看 Nginx 日志的几种方法&#xff1a; 1、查看访问日志&#xff1a;在默认配置下&#xff0c;Nginx 的访问日志文件路径为 /var/log/nginx/access.log。您可以通过命令 sudo cat /var…

3、设计模式之工厂模式1(Factory)

工厂模式是什么&#xff1f;     工厂模式是一种创建者模式&#xff0c;用于封装和管理对象的创建&#xff0c;屏蔽了大量的创建细节&#xff0c;根据抽象程度不同&#xff0c;主要分为简单工厂模式、工厂方法模式以及抽象工厂模式。 简单工厂模式 看一个具体的需求 看一个…

Spring Boot 集成 WebSocket 实例 | 前端持续打印远程日志文件更新内容(模拟 tail 命令)

这个是我在 CSDN 的第一百篇原则博文&#xff0c;留念&#x1f60e; #1 需求说明 先说下项目结构&#xff0c;后端基于 Spring Boot 3&#xff0c;前端为 node.js 开发的控制台程序。现在希望能够在前端模拟 tail 命令&#xff0c;持续输出后端的日志文件。 #2 技术方案 #2.…

Ubuntu文本编辑工具nano和vim快捷键

文章目录 Ubuntu文本编辑工具nano和vim快捷键一、前言1.简介2.环境 二、正文1.nano 快捷键1&#xff09;文件操作2&#xff09;编辑操作3&#xff09;光标移动4&#xff09;其他操作 2.vim 快捷键1&#xff09;安装 vim2&#xff09;常规模式&#xff08;1&#xff09;导航&…

蓝桥杯练习:景区导游

视频 UP主的博客 暴力做法&#xff0c;能过 42%数据。如果内存开 1e410 能过 40%&#xff0c;如果开 2e510就只能过 25% #include<bits/stdc.h> #define int long long #define endl \n const int N 1e410; using namespace std; //存两点的距离 typedef pair<in…

ts中高阶类型的理解

高阶类型是TypeScript中一种高级的类型操作&#xff0c;它允许你创建或修改现有类型的结构。这些类型通常作为其他类型的参数&#xff08;即“泛型”&#xff09;来定义新的类型。以下是一些常见的高阶类型示例&#xff1a; 映射类型&#xff08;Mapped Types&#xff09;&…

豆瓣书影音存入Notion

使用Python将图书和影视数据存放入Notion中。 &#x1f5bc;️介绍 环境 Python 3.10 &#xff08;建议 3.11 及以上&#xff09;Pycharm / Vs Code / Vs Code Studio 项目结构 │ .env │ main.py - 主函数、执行程序 │ new_book.txt - 上一次更新书籍 │ new_video.…

GitLab 中国发行版 15.11 重点功能解读【一】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 更多关于极狐GitLab 或者 DevOps 的最佳实践&#xff0c;可以关…

全球首个 AI 软件工程师 Devin它来了!

如果您想每日获取AI最新新闻,欢迎关注文章底部的公众号 Cognition AI 发布 AI 软件工程师 Devin 初创公司 Cognition 近日发布公告,宣布推出全球首个 AI 软件工程师 Devin,并号称会彻底改变人类构建软件的方式。Devin 擅长长期推理能力,可以自主规划和完成软件项目,并在此…

ElasticSearch深度分页问题如何解决

文章目录 概述解决方法深度分页方式from size深度分页之scrollsearch_after 三种分页方式比较 概述 Elasticsearch 的深度分页问题是指在大数据集上进行大量分页查询时可能导致的性能下降和资源消耗增加的情况。这种情况通常发生在需要访问大量数据的情形下&#xff0c;比如用…

【OpenBayes 官方教程】数据读写绑定功能

本教程主要为大家介绍怎样在 OpenBayes 上进行数据的绑定以及如何使用已绑定的数据&#xff0c;新朋友点击下方链接注册后&#xff0c;即可获得 4 小时 RTX 4090 5 小时 CPU 的免费使用时长哦&#xff01; 注册链接 注册 - OpenBayes 首先&#xff0c;创建一个新的容器。 然…

非光滑非凸规划

目录 一&#xff0c;非凸函数的近端梯度下降 1&#xff0c;凸函数的近端梯度下降 2&#xff0c;非凸函数的近端梯度下降 一&#xff0c;非凸函数的近端梯度下降 1&#xff0c;凸函数的近端梯度下降 参考近端梯度下降 2&#xff0c;非凸函数的近端梯度下降

11.17定时调度(血干JAVA系类)

定时调度 11.17.1 Timer 类11.17.2 TimerTask 类11.17.3范例——定时操作【例11.52】建立TimerTask的子类【例11.53】建立测试类&#xff0c;进行任务调度 11.17.1 Timer 类 11.17.2 TimerTask 类 要想执行具体的任务&#xff0c;则必须使用Tim erTas k类。Tim erTas k类是一个…

工业界真实的推荐系统(小红书)-离散特征处理、矩阵补充模型、双塔模型

课程特点&#xff1a;系统、清晰、实用&#xff0c;原理和落地经验兼具 b站&#xff1a;https://www.bilibili.com/video/BV1HZ421U77y/?spm_id_from333.337.search-card.all.click&vd_sourceb60d8ab7e659b10ea6ea743ede0c5b48 讲义&#xff1a;https://github.com/wangsh…

vid2vid(Video-to-Video Synthesis)论文详读和理解

论文&#xff1a;https://arxiv.org/abs/1808.06601 代码&#xff1a;https://github.com/NVIDIA/vid2vid