[数据结构]线性表1 C++编程作业

链表三插法详解:

链表的三种插入方法(头插法,尾插法,任意位置插入)_链表插入_夜路难行々的博客-CSDN博客

1·使用头插法创建链表

#include <iostream>
using namespace std;typedef struct Lnode{int data;struct Lnode *next;
}LNode,*LinkList;void PrintList(LinkList &L)
{LinkList p=L->next;while(p){cout<<p->data<<" ";p=p->next;}cout<<endl;
}
void CreateList_F(LinkList &L,int n){ L=new LNode; L->next=NULL; //先建立一个带头结点的单链表 for(int i=0;i<n;i++){ LNode *p=new LNode; //生成新结点 cin>>p->data; //输入元素值 p->next=L->next;L->next=p; 	//插入到表头 } 
}
int main()
{int n;cin >> n;LinkList L;CreateList_F(L,n);PrintList(L);
}

2·使用尾插法创建链表

#include <iostream>
using namespace std;typedef struct Lnode{int data;struct Lnode *next;
}LNode,*LinkList;void PrintList(LinkList &L)
{LinkList p=L->next;while(p){cout<<p->data<<" ";p=p->next;}cout<<endl;
}void CreateList_L(LinkList &L,int n){ L=new LNode; L->next=NULL; 	LinkList r=L; 	                                //尾指针r指向头结点 for(int i=0;i<n;++i){ LNode *p=new LNode;            //生成新结点 cin>>p->data;   		       //输入元素值 p->next=NULL; r->next=p;       //插入到表尾 r=p; 	                                  //r指向新的尾结点 } 
}
int main()
{int n;cin >> n;LinkList L;CreateList_L(L,n);PrintList(L);
}

3·使用尾插法创建链表并实现删除指定元素

#include <iostream>
using namespace std;typedef struct Lnode{int data;struct Lnode *next;
}LNode,*LinkList;void PrintList(LinkList &L)
{LinkList p=L->next;while(p){cout<<p->data<<" ";p=p->next;}cout<<endl;
}void CreateList_L(LinkList &L,int n){ //正位序输入n个元素的值,建立带表头结点的单链表L L=new LNode; L->next=NULL; 	LinkList r=L; 	                                //尾指针r指向头结点 for(int i=0;i<n;++i){ LNode *p=new LNode;            //生成新结点 cin>>p->data;   		       //输入元素值 p->next=NULL; r->next=p;       //插入到表尾 r=p; 	                                  //r指向新的尾结点 } 
}//CreateList_Lbool ListDelete(LinkList &L,int e){LinkList p=L->next;LinkList q=L;while(p && p->data!=e){                 q=p;p=p->next;} if(!p) return false; //没找到被删除元素 q->next=p->next; 	                  delete p;return true; 
}//ListDelete
int main()
{int n;cin >> n;LinkList L;CreateList_L(L,n);int e;cin >> e;ListDelete(L,e);PrintList(L);return 0;
}

4·合并两个有序链表

#include <iostream>
using namespace std;typedef struct Lnode{int data;struct Lnode *next;
}LNode,*LinkList;void PrintList(LinkList &L)
{LinkList p=L->next;while(p){cout<<p->data<<" ";p=p->next;}cout<<endl;
}void CreateList_L(LinkList &L,int n){ //正位序输入n个元素的值,建立带表头结点的单链表L L=new LNode; L->next=NULL; 	LinkList r=L; 	                                //尾指针r指向头结点 for(int i=0;i<n;++i){ LNode *p=new LNode;            //生成新结点 cin>>p->data;   		       //输入元素值 p->next=NULL; r->next=p;       //插入到表尾 r=p; 	                                  //r指向新的尾结点 } 
}//CreateList_L
void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){LinkList pa=La->next;  LinkList pb=Lb->next;LinkList pc=Lc=La;                    //用La的头结点作为Lc的头结点 while(pa && pb){if(pa->data<=pb->data){ pc->next=pa;pc=pa;pa=pa->next;}else{pc->next=pb; pc=pb; pb=pb->next;}}pc->next=pa?pa:pb;      //插入剩余段  delete Lb;                     //释放Lb的头结点}  
}
int main()
{int n;cin >> n;LinkList La;CreateList_L(La,n);int m;cin >> m;LinkList Lb;CreateList_L(Lb,m);LinkList Lc;MergeList_L(La,Lb,Lc);PrintList(Lc);return 0;
}

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

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

相关文章

排序:直接插入排序希尔排序

目录 排序&#xff1a; 概念&#xff1a; 直接插入排序&#xff1a; 代码的实现&#xff1a; 代码解析&#xff1a; 总结&#xff1a; 希尔排序&#xff1a; 代码实现&#xff1a; 预排序&#xff1a; 代码优化&#xff1a; gap 的 本质 &#xff1a; 直接…

【每日一题】最小化旅行的价格总和

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;深搜动态规划 写在最后 Tag 【深搜动态规划】【树】【2023-12-06】 题目来源 2646. 最小化旅行的价格总和 题目解读 有一棵无向、无根的树&#xff0c;树中的节点从 0 到 n-1&#xff0c;每个节点有一个关联的价格&a…

这款IDEA插件真的爱了

前言 Idea 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它可以帮助开发人员更加高效地编写、调试和部署软件应用程序,Idea 还具有许多插件和扩展&#xff0c;可以根据开发人员的需要进行定制和扩展&#xff0c;从而提高开发效率,今天我们就来介绍一款…

基于Java SSM毕业设计管理子系统

学校有若干系&#xff0c;每个系有若干专业&#xff0c;需要通过一个毕业设计管理子系统对毕业设计隋况进行管理。系统主要功能如下&#xff1a; 登记毕业设计题目&#xff0c;包括&#xff1a;编号、题目、类型、指导老师等。 老师信息包括&#xff1a;工号、姓名、性别、职称…

基于c++版本的数据结构改-python栈和队列思维总结

##栈部分-&#xff08;叠猫猫&#xff09; ##抽象数据类型栈的定义&#xff1a;是一种遵循先入后出的逻辑的线性数据结构。 换种方式去理解这种数据结构如果我们在一摞盘子中取到下面的盘子&#xff0c;我们首先要把最上面的盘子依次拿走&#xff0c;才可以继续拿下面的盘子&…

Java开源工具库Guava使用指南详解

Guava是Google开发的一套Java核心库&#xff0c;它提供了很多实用的工具类和方法&#xff0c;能够简化Java开发者的日常工作。下面是一些Guava的使用指南&#xff1a; 导入Guava库 在使用Guava之前&#xff0c;需要先将Guava库导入到项目中。可以在Maven或Gradle中添加以下依…

Postman可以卸载了!这款IDEA插件太好用了!

Postman是大家最常用的API调试工具&#xff0c;那么有没有一种方法可以不用手动写入接口到Postman&#xff0c;即可进行接口调试操作&#xff1f;今天给大家推荐一款IDEA插件&#xff1a;Apipost Helper&#xff0c;写完代码就可以调试接口并一键生成接口文档&#xff01;而且还…

JIRA 禁用用户自动登录

概述 当用户登录 JIRA 时&#xff0c;他们可以通过在单击“Log In”按钮之前选中“Remember my login”复选框&#xff0c;让 JIRA 记住他们的登录信息。这样做之后&#xff0c;“Remember my login”令牌将由 JIRA 服务器存储&#xff0c;并且系统会在用户的浏览器中设置包含…

智能优化算法应用:基于学生心理学算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于学生心理学算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于学生心理学算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.学生心理学算法4.实验参数设定5.算法结果…

gitLab创建新项目

1.进入git2.选择创建项目3.勾选生成readme.md文件4.邀请成员

设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。

题目描述&#xff1a;设L为带头结点的单链表&#xff0c;编写算法实现从尾到头反向输出每个结点的值。 分析&#xff1a; 从尾到头反向输出可以考虑使用头插法。 void Reverse(LinkList L) {LNode *p L->next; // 指针 p 指向链表的第一个结点LNode *r; // 临…

C //例10.1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。

C程序设计 &#xff08;第四版&#xff09; 谭浩强 例10.1 例10.1 从键盘输入一些字符&#xff0c;逐个把它们送到磁盘上去&#xff0c;直到用户输入一个“#”为止。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法&#xff1a;使用指针&…

第一篇:MongoDB的安装、启动、关闭、链接shell

目录 简介 安装 安装遇到的问题 查看brew 当前使用的源&#xff1a; 更换brew 源。更换成清华大学镜像源 版本查看 MongoDB 数据目录与日志目录 启动方式一&#xff1a; 启动MongoDB 验证MongoDB 是否正常运行 停止或重新启动 停止MongoDB 服务 重新启动MongoDB服…

身为 Go 程序员,我为啥更喜欢用 Zig?

Zig 是一种比较新的编程语言&#xff0c;于 2016 年首次推出。Zig 社区将其描述为“一种用于维护稳固的、可优化和可重用软件的通用编程语言”。 看似一句简单的描述&#xff0c;却隐藏着远大的抱负。Zig被看作是可与C语言一较高下的编程语言。此外&#xff0c;Zig 也是一个编…

Python自动化测试selenium操作下拉列表实现

处理下拉列表需要使用selenium中的工具类Select&#xff0c;常用方法如下&#xff1a; 示例网站&#xff1a;Sahi Tests 示例场景&#xff1a;打开Sahi Tests页面&#xff0c; &#xff08;1&#xff09;点击“Select Test”页面&#xff0c;鼠标点击页面中第一个下拉列表。 …

Git版本管理配置说明 - Visual Studio

一、 Git服务端配置 在源代码管理服务器新建文件夹,并配置共享访问权限Everyone(读取/写入)。 在本地访问这台服务器共享目录,确保正确打开。 在VS中打开项目,点选Git更改,点击“创建Git仓库”,创建项目初始版本。 弹出如下对话框: 因为我们只是在局域网中开发项…

LeetCode题:931下降路径最小和

目录 一、题目要求 二、解题思路 &#xff08;1&#xff09;状态表示 &#xff08;2&#xff09;状态转移方程 &#xff08;3&#xff09;初始化 &#xff08;4&#xff09;填表顺序 &#xff08;5&#xff09;返回值 三、代码 一、题目要求 931. 下降路径最小和 给你…

Web测试中文件上传测试

总体情况 功能实现&#xff1a; &#xff08;1&#xff09;文件类型正确、大小合适。 &#xff08;2&#xff09;文件类型正确&#xff0c;大小不合适。 &#xff08;3&#xff09;文件类型错误&#xff0c;大小合适。 &#xff08;4&#xff09;文件类型和大小都合适&#xff…

路由跳转添加进度条

根据npm官网的步骤&#xff1a; 1.先安装nprogress npm install nprogress 2.引入nprogress和样式文件 import nprogress from nprogress import nprogress/nprogress.css 3.在前置守卫添加进度条的展示 //全局前置守卫 router.beforeEach((to: any, from: any, next: an…

Pyside2 (Qt For Python)进度条功能实现

Pyside2 (Qt For Python)进度条功能实现 进度条&#xff08;QProgressBar&#xff09; 今天来介绍PySide2进度条&#xff08;QProgressBar&#xff09;的使用&#xff0c;如下所示&#xff1a; 说明 进度条也是一个常用的控件&#xff0c;当程序需要做一件比较耗费时间的任…