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

【建立单链表:头插法,尾插法;循环列表,带尾指针的循环链表合并(将Tb合并在Ta之后)】

文章目录

  • 一、单链表的基本操作的实现
    • 1.建立单链表:头插法----元素插入在链表头部,也叫头插法。
    • 2.建立单链表:尾插法----元素插入在链表尾部,也叫尾插法。
  • 二、线性表的链式表示和实现
    • 1.循环列表
    • 2.带尾指针的循环链表合并(将Tb合并在Ta之后)

一、单链表的基本操作的实现

1.建立单链表:头插法----元素插入在链表头部,也叫头插法。

1.从一个空表开始,重复读取数据。
2.生成新结点,将读入数据存放到新结点的数据域中。
3.从最后一个结点开始,依次将各结点插入到链表的最前端。
在这里插入图片描述

void CreateList(LinkList& L, int n) {L = new LNode;L->next = NULL;//先创建一个带头结点的单链表LinkList p;int i;for (i = n; i > 0; --i) {p = new LNode;//生成新结点p = (LNode*)malloc(sizeof(LNode));cin >> p->data;//输入元素值scanf(&p->data);p->next = L->next;L->next = p;}
}

2.建立单链表:尾插法----元素插入在链表尾部,也叫尾插法。

1.从一个空表L开始,将新结点逐个插入到链表的尾部,尾指针r指向链表的尾结点。
2.初始时,r同L均指向头结点。每读入一个数据元素则申请一个新结点,将新结点插入到尾结点后,r指向新结点。
在这里插入图片描述

void CreateList(LinkList& L, int n) {L = new LNode;L->next = NULL;int i;LinkList r = L;//尾指针r指向头结点for (i = 0; i < n; ++i) {LinkList p = new LNode;cin >> p->data;//生成新结点,输入元素值p->next = NULL;r->next = p;//插入到表尾r = p;//r指向新的尾结点}
}

二、线性表的链式表示和实现

1.循环列表

循环列表:是一种头尾相连的链表(即:表中的最后一个结点的指针域指向头指针,整个链表形成一个环)。
在这里插入图片描述
优点:从表中任一结点出发均可找到表中的其他结点。
注意:由于循环指针没有NULL指针,故涉及遍历操作时,其终止条件就不再像非循环链表那样判断p或p->next是否为空,而是他们是否等于头指针。
p != L;
P -> next != L;

头指针表示单循环链表:①找a1的时间复杂度:O(1);②找an的时间复杂度:O(n)。
注意:表的操作常常在表的首尾进行。
尾指针表示单循环链表:①a1的存储位置:R->next->next;
②an的存储位置是:R。时间复杂度都是O(1)。

2.带尾指针的循环链表合并(将Tb合并在Ta之后)

在这里插入图片描述
分析的操作:
①p存表头结点(p=Ta->next)
②Tb表头连接在Ta表尾(Ta->next = Tb->next->next)
③释放Tb表结点(delete Tb->next)
④修改指针(Tb->next = p)

LinkList Connect(LinkList Ta, LinkList Tb) {//假设Ta和Tb都是非空的单循环链表LinkList p;p = Ta->next;//p存表头结点Ta->next = Tb->next->next;//Tb表头连接Ta表尾delete Tb->next;//释放Tb的头结点Tb->next = p;//修改指针return Tb;
}

相关文章:

【建立单链表:头插法,尾插法;循环列表,带尾指针的循环链表合并(将Tb合并在Ta之后)】

文章目录 一、单链表的基本操作的实现1.建立单链表&#xff1a;头插法----元素插入在链表头部&#xff0c;也叫头插法。2.建立单链表&#xff1a;尾插法----元素插入在链表尾部&#xff0c;也叫尾插法。 二、线性表的链式表示和实现1.循环列表2.带尾指针的循环链表合并&#xf…...

图论+线性基高斯消元与主元:1019T2 / P4151

http://cplusoj.com/d/senior/p/SS231019B 相当于图上选一条链和一堆环 考虑dfs生成树。 则链是两条从根出发的链 环是每条返祖边组成的环 所以环和链的异或和可以求出来 链的放到线性基里 然后线性基通过高斯消元求主元&#xff08;贪心思想&#xff0c;主元可以令那一位…...

Django REST Framework完整教程-RESTful规范-序列化和反序列数据-数据视图

文章目录 1.简介及安装2.案例模型2.1.创建模型2.2.安装mysql必要组件2.3.管理后台转中文2.4.启动后台 3.数据序列化4.RESTful规范4.1.协议、域名和版本4.2.uri(统一资源标识符)4.3.查增删改4.4.过滤信息&#xff08;Filtering&#xff09;4.5.状态码&#xff08;Status Codes&a…...

float、double类型的转化和判断为零问题

1、将字符串转化为float、double 浮点数在内存中的存储机制和整形数据不同&#xff0c;有舍入误差&#xff0c;在计算机中用近似表示任意某个实数。具体来说&#xff0c;这个数由一个整数或定点数&#xff08;即尾数&#xff09;乘以某个基数&#xff08;计算机中通常是2&…...

强大的虚拟机软件 VMware Fusion Pro 13中文最新 for mac

VMware Fusion Pro是一款虚拟化软件&#xff0c;它允许在Mac电脑上同时运行Windows和其他操作系统&#xff0c;而无需重启电脑&#xff0c;它采用了领先的虚拟化技术&#xff0c;能够保证在Mac电脑在同时运行多个操作系统时表现出极高的效率和稳定性。 VMware Fusion Pro具有以…...

SystemVerilog Assertions应用指南 Chapter1.37 使用局部变量的SVA

在序列或者属性的内部可以局部定义变量,而且可以对这种变量进行赋值。变量接着子序列放置,用逗号隔开。如果子序列匹配,那么变量赋值语句执行。每次序列被尝试匹配时,会产生变量的一个新的备份。 module cubed(enable1, a, aa, clk);input logic [7:0] a; input logic enable1,…...

Linux实现无需手动输入密码的自动化SSH身份验证

SSH密钥身份验证是一种安全的方式&#xff0c;使您能够在无需手动输入密码的情况下连接到远程服务器。以下是如何设置SSH密钥身份验证&#xff0c;以便您的脚本能够自动运行&#xff1a; 步骤 生成SSH密钥对: 在您的本地系统上生成SSH密钥对。如果您尚未生成&#xff0c;请使用…...

CSS 效果 圆形里一个文字居中

效果实现源码&#xff1a; 宽度&#xff0c;高度必须确认&#xff0c;且相等 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.circlew {width: 45px;height: 45p…...

排序算法,冒泡排序算法及优化,选择排序SelectionSort,快速排序(递归-分区)

一、冒泡排序算法&#xff1a; 介绍&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单直观的排序算法。它重复地走访过要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需…...

编写内联函数求解 2x²+4x+5的值,并用主函数调用该函数

动态内存分配可以根据实际需要在程序运行过程中动态地申请内存空间,这种内存空间的分配和释放是由程序员自己管理的,因此也被称为手动内存分配。 C++ 中,动态内存的分配和释放是通过 new 和 delete 操作符进行的。new 操作符用于在堆内存上为对象动态分配空间,dele…...

【Release】Photoshop ICO file format plug-in 3.0

【Introduction】 The Photoshop ICO plug-in is a file format plug-in developed for Photoshop, which allows Photoshop to directly read and write ICO format files. Because Photoshop has powerful pixel bitmap editing functions, it has many users and a good us…...

List.of() Vs Arrays.asList()

java中list.of和Arrays.asList方法有什么区别&#xff1f; 简介 Java 提供了几种用于创建列表的方便方法&#xff0c;包括 List.of 和 Arrays.aslist。尽管这两种方法都可以很简单的创建集合对象&#xff0c;但它们实际上是有一些显著差异的。本文将介绍 Java 中的 List.of()…...

机器学习-计算数据之间的距离

目录 欧氏距离 欧氏距离应用场景&#xff1a; 聚类分析&#xff1a;在聚类算法中(K-means)中&#xff0c;可以使用欧式距离来衡量数据点之间的相似性或距离&#xff0c;以便于将他们划分到不用的簇中。特征匹配&#xff1a;在计算机视觉和图像处理中&#xff0c;可以使用欧氏…...

Uniapp软件库源码 全新带勋章功能(包含前后端源码)

Uniapp软件库全新带勋章功能&#xff0c;搭建好后台 在前端找到 util 这个文件 把两个js文件上面的填上自己的域名&#xff0c; 电脑需要下载&#xff1a;HBuilderX 登录账号 没有账号就注册账号&#xff0c;然后上传文件&#xff0c;打包选择 “发行” 可以打包app h5等等。…...

陪诊小程序|陪诊小程序关爱健康,无忧陪伴

随着社会发展和人们生活水平的提高&#xff0c;健康问题成为人们关注的焦点。然而&#xff0c;在就医过程中&#xff0c;许多患者常常感到孤独和无助&#xff0c;缺乏得到家人陪伴的温暖与安慰。为了解决这一问题&#xff0c;我们公司开发了一款创新的陪诊小程序软件&#xff0…...

uni-app小程序使用DCloud(插件市场)流程

一、DCloud&#xff08;插件市场&#xff09; DCloud 是uni-app官方插件市场&#xff0c;里面有官方、团队、个人发布的众多插件&#xff0c;包括uni-ui、uni-pay 等。而像uni-ui这种大型组件库都有官方文档可参考&#xff0c;但一些团队或个人发布的小型插件没有文档&#xf…...

非平稳信号分析和处理、STFT的瞬时频率研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

SIPp使用经验

xml文件&#xff0c;建议<?xml version"1.0" encoding"UTF-8" ?>&#xff0c;不建议ISO-8859-1命令行传key参数 sipp -key contact_port 9999 ...<send retrans"500"><![CDATA[REGISTER sip:[field1]:[remote_port] SIP/2.0Vi…...

ChessGPT:免费好用的国际象棋对弈AI机器人

对于国际象棋初学者&#xff0c;需要找一个对手来练棋。ChessGPT&#xff0c;就是一个免费好用的AI对弈机器人&#xff0c;非常适合新手来提升&#xff0c;是一个很好的练习伙伴。网站地址是&#xff1a;https://www.chess.com/play/computer&#xff0c;也有手机版app&#xf…...

华为OD 区间交集(200分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...

HoVer-Net:如何用AI实现病理切片中的细胞核精准分割与分类?

HoVer-Net&#xff1a;如何用AI实现病理切片中的细胞核精准分割与分类&#xff1f; 【免费下载链接】hover_net Simultaneous Nuclear Instance Segmentation and Classification in H&E Histology Images. 项目地址: https://gitcode.com/gh_mirrors/ho/hover_net …...

从Halcon到PCL:3D点云分割的两种思路实战(附完整C++代码对比)

从Halcon到PCL&#xff1a;3D点云分割的两种思路实战&#xff08;附完整C代码对比&#xff09; 在工业视觉和三维重建领域&#xff0c;点云分割是提取目标特征的关键步骤。当工程师需要在Halcon和PCL这两个主流平台间切换时&#xff0c;往往会面临完全不同的设计哲学和实现路径…...

Akagi智能麻将助手完全教程:AI实时分析提升雀魂水平

Akagi智能麻将助手完全教程&#xff1a;AI实时分析提升雀魂水平 【免费下载链接】Akagi 支持雀魂、天鳳、麻雀一番街、天月麻將&#xff0c;能夠使用自定義的AI模型實時分析對局並給出建議&#xff0c;內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Amatsuk…...

JCSprout Spring源码解析:Bean生命周期与AOP实现原理终极指南

JCSprout Spring源码解析&#xff1a;Bean生命周期与AOP实现原理终极指南 【免费下载链接】JCSprout &#x1f468;‍&#x1f393; Java Core Sprout : basic, concurrent, algorithm 项目地址: https://gitcode.com/gh_mirrors/jc/JCSprout JCSprout&#xff08;Java…...

SSHFS-Win终极指南:在Windows上快速挂载远程Linux文件系统的完整教程

SSHFS-Win终极指南&#xff1a;在Windows上快速挂载远程Linux文件系统的完整教程 【免费下载链接】sshfs-win SSHFS For Windows 项目地址: https://gitcode.com/gh_mirrors/ss/sshfs-win SSHFS-Win是一款革命性的开源工具&#xff0c;让Windows用户能够通过SSH协议直接…...

AI模型精度格式解析:从FP32到INT8的优化实践

1. 精度格式的厨房哲学 在AI模型的训练和推理过程中&#xff0c;数值精度格式就像厨师手中的刀具——不同的菜品需要不同的刀工。FP32好比主厨刀&#xff0c;能处理所有精细操作&#xff1b;FP16像切片刀&#xff0c;轻便但需要技巧&#xff1b;INT8则是剁骨刀&#xff0c;粗暴…...

Cursor AI助手最佳实践:通过规则配置提升代码质量与团队协作

1. 项目概述&#xff1a;为什么我们需要一套“最佳”的Cursor规则&#xff1f;如果你是一名开发者&#xff0c;并且最近开始使用Cursor——这款集成了AI编程助手的现代编辑器&#xff0c;那么你很可能已经体会过那种“又爱又恨”的感觉。爱的是&#xff0c;它确实能极大地提升编…...

FastAPI后端如何优雅地‘喂’数据给Amis低代码前端?一份接口透传指南

FastAPI与Amis低代码前端的优雅数据交互实践指南 当FastAPI遇上Amis低代码前端&#xff0c;开发者常常面临一个核心挑战&#xff1a;如何让Python后端优雅地"投喂"数据给JSON驱动的前端框架&#xff1f;这个问题看似简单&#xff0c;却蕴含着前后端协作效率的关键密码…...

DDrawCompat完整教程:让老旧游戏在现代Windows上重获新生的终极解决方案

DDrawCompat完整教程&#xff1a;让老旧游戏在现代Windows上重获新生的终极解决方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_…...

HFSS 2020 保姆级教程:从零开始,用T型波导实例搞定模式驱动求解与S参数分析

HFSS 2020 实战指南&#xff1a;T型波导建模与电磁仿真全流程解析 第一次打开HFSS时&#xff0c;面对密密麻麻的菜单和复杂的参数设置&#xff0c;很多初学者都会感到无从下手。作为一款专业的电磁场仿真软件&#xff0c;HFSS在微波器件设计、天线分析等领域有着广泛应用&#…...