数据结构--线性表和串

个人介绍

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
在这里插入图片描述
🦁作者简介:一名喜欢分享和记录学习的在校大学生
💥个人主页:code袁
💥 个人QQ:2647996100
🐯 个人wechat:code8896

专栏导航

code袁系列专栏导航
1.毕业设计与课程设计:本专栏分享一些毕业设计的源码以及项目成果。🥰🥰🥰
2.微信小程序开发:本专栏从基础到入门的一系开发流程,并且分享了自己在开发中遇到的一系列问题。🤹🤹🤹
3.vue开发系列全程线路:本专栏分享自己的vue的学习历程。

非常期待和您一起在这个小小的互联网世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨ 

在这里插入图片描述

在这里插入图片描述

1、 什么是线性表?

线性表是一种常见的数据结构,它是具有相同数据类型的有限序列。线性表中的元素之间存在一种顺序关系,可以通过元素在表中的位置来访问和操作。

线性表的基本操作

线性表的基本操作包括插入、删除、查找、遍历等操作:

  • 插入:在指定位置插入一个新元素。
  • 删除:删除指定位置的元素。
  • 查找:根据元素的值或位置查找元素。
  • 遍历:依次访问线性表中的每个元素。

除了基本操作,线性表还可以进行合并、拆分、反转等高级操作。

线性表的实现

线性表可以使用数组或链表来实现。下面是一个使用数组实现线性表的示例代码:

class ArrayList:def __init__(self):self.data = []def insert(self, index, value):self.data.insert(index, value)def delete(self, index):del self.data[index]def find(self, value):return value in self.datadef traverse(self):for item in self.data:print(item)

线性表的应用

线性表在计算机科学中有着广泛的应用,比如:

  • 数组:数组是线性表的一种实现方式,用于存储固定大小的元素。
  • 链表:链表是线性表的另一种实现方式,用于存储动态大小的元素。
  • 栈和队列:栈和队列可以看作是特殊的线性表,具有特定的操作规则。

线性表的例子

1. 使用线性表实现动态数组

class DynamicArray:def __init__(self):self.data = []def insert(self, value):self.data.append(value)def delete(self, index):del self.data[index]def find(self, value):return value in self.datadef traverse(self):for item in self.data:print(item)

2. 使用线性表实现链表

class ListNode:def __init__(self, value):self.value = valueself.next = Noneclass LinkedList:def __init__(self):self.head = Nonedef insert(self, value):new_node = ListNode(value)if not self.head:self.head = new_nodeelse:current = self.headwhile current.next:current = current.nextcurrent.next = new_nodedef delete(self, value):current = self.headprev = Nonewhile current:if current.value == value:if prev:prev.next = current.nextelse:self.head = current.nextbreakprev = currentcurrent = current.nextdef traverse(self):current = self.headwhile current:print(current.value)current = current.next

2、什么是串?

串是由零个或多个字符组成的有限序列,也可以理解为字符串。串是计算机科学中最基本的数据类型之一,常用于表示文本信息。

串的基本操作

串的基本操作包括串的赋值、串的连接、串的比较、串的截取等操作:

  • 赋值:将一个串赋值给另一个串。
  • 连接:将两个串连接成一个新串。
  • 比较:比较两个串的大小关系。
  • 截取:从串中截取指定位置和长度的子串。

除了基本操作,串还可以进行查找、替换、匹配等高级操作。

串的实现

串可以使用字符数组或链表来实现。下面是一个使用字符数组实现串的示例代码:

class String:def __init__(self, value):self.data = list(value)def concat(self, other):return ''.join(self.data + other.data)def compare(self, other):if self.data == other.data:return 0elif self.data < other.data:return -1else:return 1def substring(self, start, length):return ''.join(self.data[start:start+length])

串的应用

串在计算机科学中有着广泛的应用,比如:

  • 文本处理:在文本编辑器和编译器中,串用于表示和处理文本信息。
  • 模式匹配:在字符串匹配算法中,串用于模式匹配和查找。
  • 数据传输:在网络通信中,串用于表示和传输数据。

串的例子

1. 使用串连接操作

s1 = String("Hello, ")
s2 = String("World!")
result = s1.concat(s2)
print(result)  # Output: Hello, World!

2. 使用串比较操作

s1 = String("abc")
s2 = String("def")
result = s1.compare(s2)
print(result)  # Output: -1

3. 使用串截取操作

s = String("Hello, World!")
result = s.substring(7, 5)
print(result)  # Output: World

🎉写在最后

🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

你的支持就是我更新的最大动力💪~
在这里插入图片描述

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

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

相关文章

2024-06-08 Unity 编辑器开发之编辑器拓展9 —— EditorUtility

文章目录 1 准备工作2 提示窗口2.1 双键窗口2.2 三键窗口2.3 进度条窗口 3 文件面板3.1 存储文件3.2 选择文件夹3.3 打开文件3.4 打开文件夹 4 其他内容4.1 压缩纹理4.2 查找对象依赖项 1 准备工作 ​ 创建脚本 “Lesson38Window.cs” 脚本&#xff0c;并将其放在 Editor 文件…

Vue3【十二】09Computed计算属性

Vue3【十二】09Computed计算属性 计算属性 获取全名 这种方式是只读的不能修改 这样定义fullName是一个计算属性&#xff0c;可读可写 案例截图 目录结构 代码 Person.vue <template><div class"person"><h1>我是 Person 组件</h1>姓&…

基于OpenVINO实现无监督异常检测

异常检测(AD) 在欺诈检测、网络安全和医疗诊断等关键任务应用中至关重要。由于数据的高维性和底层模式的复杂性&#xff0c;图像、视频和卫星图像等视觉数据中的异常检测尤其具有挑战性。然而&#xff0c;视觉异常检测对于检测制造中的缺陷、识别监控录像中的可疑活动以及检测医…

三维重建 虚拟内窥镜(VE)是什么?怎么实现 使用场景

1.虚拟内窥镜&#xff1a; 就是利用计算机图形学、虚拟现实、图像处理和科学可视化等信息处理技术仿真光学内窥镜对病人进行诊断的一种技术。 VE(Virtual Endoscopy)&#xff0c;虚拟内镜技术。这种CT重建图像可以模拟各种内镜检查的效果&#xff0c;它是假设视线位于所要观察…

高能来袭|联想拯救者携手《黑神话:悟空》玩转东方神话世界

从2020年首次发布实机演示视频以来&#xff0c;《黑神话&#xff1a;悟空》便在全球范围内获得了广泛关注&#xff0c;成为国产3A游戏的现象级爆款。6月&#xff0c;联想拯救者正式宣布成为《黑神话&#xff1a;悟空》全球官方合作伙伴&#xff0c;致力于共同革新国产游戏体验&…

第十二届蓝桥杯C++青少年组中/高级组选拔赛2020年11月22日真题解析

一、编程题 第1题&#xff1a;求和 【题目描述】 输入一个正整数 N(N < 100)&#xff0c;输出 1 到 N(包含 1 和 N)之间所有奇数的和。 【输入描述】 输入一个正整数 N(N < 100) 【输出描述】 输出 1 到 N 之间的所有奇数的和 【输入样例】 3【输出样例】 4答案&…

LIP模型动力学方程例子

线性倒立摆(Linear Inverted Pendulum, LIP)模型是用于描述和控制人形机器人步态的重要工具。LIP模型假设质心沿着一条固定的直线运动,并且所有质量集中在质心上。这简化了计算,使得模型更容易用于控制和稳定分析。 LIP模型动力学方程 LIP模型的基本假设是: 机器人的质心…

【病理数据】svs格式数据解读

Openslide 病理图像通常以.svs格式存储在数据库中。要想使用python处理svs格式的图像&#xff0c;我们通常使用Openslide模块。 关于Openslide模块的安装详见这个博客&#xff1a; 【解决Error】ModuleNotFoundError: No module named ‘openslide‘ 病理图像数据结构 病理图…

Latex中表格(3)

Latex中的表格 一、多行或多列单元格 这篇主要说Latex中表格出现多行或者多列单元格的形式. 一、多行或多列单元格 可能用到的宏包 \usepackage{booktabs}\usepackage{multirow} 代码&#xff1a; \begin{table}[h!] \centering \caption{Your caption here} \begin{tabul…

【iOS】UI——关于UIAlertController类(警告对话框)

目录 前言关于UIAlertController具体操作及代码实现总结 前言 在UI的警告对话框的学习中&#xff0c;我们发现UIAlertView在iOS 9中已经被废弃&#xff0c;我们找到UIAlertController来代替UIAlertView实现弹出框的功能&#xff0c;从而有了这篇关于UIAlertController的学习笔记…

Nextjs学习教程

一.手动创建项目 建议看这个中文网站文档,这个里面的案例配置都是手动的,也可以往下看我这个博客一步步操作 1.在目录下执行下面命令,初始化package.json文件 npm init -y2.安装react相关包以及next包 yarn add next react react-dom // 或者 npm install --save next react…

k8s常见故障--yaml文件检查没有问题 pod起不来(一直处于创建中)

故障信息 pod一直处于创建中 查看pod详细信息显示 kubectl describe pod 容器id文字 Events: Type Reason Age From Message Normal Scheduled 5m30s default-scheduler Successfully assigned default/nginx-server2-f97c6b9d5-d6dsp to worker02 Warning FailedCreatePod…

C语言之字符函数总结(全部!),一篇记住所有的字符函数

前言 还在担心关于字符的库函数记不住吗&#xff1f;不用担心&#xff0c;这篇文章将为你全面整理所有的字符函数的用法。不用记忆&#xff0c;一次看完&#xff0c;随查随用。用多了自然就记住了 字符分类函数和字符转换函数 C语言中有一系列的函数是专门做字符分类和字符转换…

XML解析库tinyxml2库使用详解

XML语法规则介绍及总结-CSDN博客 TinyXML-2 是一个简单轻量级的 C XML 解析库,它提供了一种快速、高效地解析 XML 文档的方式。 1. 下载地址 Gitee 极速下载/tinyxml2 2. 基本用法 下面将详细介绍 TinyXML-2 的主要使用方法: 2.1. 引入头文件和命名空间 #i…

Acrobat Pro DC 2023 for Mac/Win:全平台PDF编辑器的终极解决方案

对于需要处理PDF文档的个人和企业用户来说&#xff0c;Adobe Acrobat Pro DC 2023是一款不可或缺的工具。作为全球领先的PDF编辑器&#xff0c;Acrobat Pro DC 2023在Mac和Windows平台上提供了丰富的功能和令人印象深刻的性能&#xff0c;使其成为用户编辑、转换和管理PDF文档的…

Vue09-事件处理

一、一个简单的示例 v-on&#xff1a;当xxx的时候。 二、事件处理 2-1、参数说明 <div id"root"><h1>你好呀&#xff0c;{{name}}</h1><button v-on:click"showinfo">点击我</button></div><script>new Vue({e…

像素着色技术在AI绘画中的革新作用

摘要&#xff1a;随着人工智能技术的不断进步&#xff0c;AI绘画已成为艺术和技术领域中的一个热门话题。本文将探讨像素着色技术在AI绘画中的应用及其对创作过程的影响&#xff0c;揭示这一技术如何推动艺术创作的革新。 引言&#xff1a; 传统的绘画方法要求艺术家具备高超的…

堆排序-调整算法

个人主页点这里!~ 1.堆 了解堆排序首先要了解一下堆这个数据结构 堆&#xff08;Heap&#xff09;是一种特殊的树形数据结构&#xff0c;它通常被表示为一个完全二叉树或近似完全二叉树&#xff0c;并且满足堆性质&#xff08;Heap Property&#xff09;。堆主要分为两种&…

【web前端开发】标签(基础知识详解)

浏览器能识别的标签 编码 <meta charset"UTF-8"> title <title>helloshh</title> 标题 <h1>1级标签</h1> <h2>2级标签</h2> <h3>3级标签</h3> <h4>4级标签</h4> <h5>5级标签</h5> &…

突发!凌晨4点某制造业大厂国产数据库集群故障...

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…