<<数据结构 python描述:第一章:线性表>>

《数据结构和算法 python语言描述》学习笔记(三)————线性表 第一部分:内容概述 线性表的概念和表的抽象数据类型 顺序表的实现 链接表 链表的变形和操作 表的应用 第二部分:学习笔记 线性表的概念和表的抽象数据类型    1. 在一个非空的线性表里,存在着唯一的一个首元素和唯一的一个尾元素(末元素)。除首元素之外,表的每个元素e都有且仅有一个前驱元素;除了尾元素之外的每个元素都有且仅有一个后继元素。    2. 线性表的操作     ① 首先,作为抽象... 阅读详情

第一章:线性表

 

 

       本章结构:

 

1.1 什么是线性表

         现在我们有 n ( n > = 0 )个数据:a1 a2 a3  ... an ,把这 n 个元素进行排列就得到了一个线性表:

List = (a1, a2 , a3, ... an )   提示:线性表是一个有限的序列,即元素的个数必须是有限多个

举几个简单的例子:

LANGUAGE = (  c , c++ , Python , Java , PHP )

ANIMAL = ( 老虎 , 狮子 , 马 , 兔子 )

1.2 什么是顺序表

明白了线性表,让我们一起来看看顺序表是什么。我们把线性表的各项元素依次存储到计算机的一块连续的存储空间中,这就形成了顺序表。简而言之,我们可以把顺序表看做

线性表在计算机中的一种存储方式

比如下图所示:

接下来我们就要开始着手于顺序表的具体操作了:

① 定义一个顺序表

② 初始化顺序表

③ 判断顺序表是否为空(即表中没有任何元素 )或 顺序表是否已满

④ 把顺序表清空

⑤ 获取顺序表的元素个数

⑥ 查找顺序表中的某个元素

⑦ 向顺序表中插入某个元素

⑧ 在顺序表的尾部增添一个元素

⑨ 从顺序表中删除某个元素

 

1.3 Python代码实现

# -*- coding: utf-8 -*-
"""
Created on Fri Oct 31 17:42:35 2014

@author: wangcan
"""
#Python代码
class Seqlist:  #定义一个顺序表
    def __init__(self,maxSize):  #初始化顺序表
        self.maxSize = maxSize   #maxSize决定顺序表的长度,即能够存储的最多元素个数
        self.data = []  #当前顺序表为空
        self.last = -1  #用于记录当前元素的下标
    def IsEmpty(self):  #判断顺序表是否为空
        if self.last == -1:
            return True
        else:
            return False
    def IsFull(self):   #判断表是否已满
        if self.last + 1 == self.maxSize:
            return True
        else:
            return False
    def ClearSeqlist(self): #清空顺序表
        if not self.IsEmpty():
            self.data = []
            self.last = -1
    def LengthOfSeqlist(self):  #返回顺序表的当前元素个数,即当前的长度
        return self.last + 1
    def SearchData(self,x):   #查找顺序表中的某个元素
        if self.IsEmpty():
            print "表为空!"
            return -1
        for i in xrange(self.last+1):
            if self.data[i] == x:
                return i
        print "你所查找的元素不存在"
        return -1
    def AppendData(self,x): #在顺序表的尾部增添一个元素
        if self.last+1 == self.IsFull():
            print "表已满,不能增加元素!"
        else:
            self.data.Append(x)
            self.last += 1
    def InsertToSeqlist(self,index,x):  #向顺序表中第i个位置插入元素x
        if self.IsFull():
            print "表已满,不能插入!"
        elif index<0 or index>= self.maxSize:
            print "不合法的插入位置!"
        elif index == self.last + 1:
            self.AppendData(x)
        else:
            for i in range(self.last,index-1,-1):
                self.data[i + 1] = self.data[i]
            self.data[index] = x
            self.last += 1
    def DeleteData(self,x): #从表中删除一个数据x
        if self.IsEmpty():
            print "表已空,无法删除元素!"
        else:
            index = -1
            for dataItem in self.data:
                index += 1
                if x == dataItem:
                    break
            for i in range(index,self.last,1):
                self.data[index+1] = self.data[index]
            self.last -= 1 

1.4 顺序表的应用(小试牛刀)

大家都知道元素周期表:

前20位元素可以说是我们非常熟悉的了,接下来请使用顺序表来存储前20个化学元素,然后查找碳元素,获取其位置信息,再从表中删除钠元素,硅元素

最后向表中按其应在的位置插入钠元素,钪元素。

 

 

 

Python数据结构与算法(2.1)——线性表的基本概念 线性表是应用最为广泛的一种数据结构,如其名所示,是一种典型的线性结构。本节主要介绍线性表的有关概念和基本操作,为之后线性表的实现奠定基础。 阅读详情

相关推荐

STM32 bootloader程序跳转到APP卡死在B_ENDP_ALIGN,原因:有未处理的中断。解决方法:重启系统

Bootloader和App中都用到了串口,定时器等,所以从Bootloader跳转App后未卡死。 后来写的另一个App里没有用到这几个外设,然后就是无限的卡死。 现在Bootloader中跳转App之前将已打开的外设关掉,再跳转至App就不再出现卡死。  if(((*(vu32*)(APPLICATION_ADDRESS+4))&0xFF000000)==0x08000000) {

jingzhixingyun的博客 7920

python数据结构之线性表

python线性表的一些基本操作,包括顺序表和单链表

m0_71417856的博客 1696

QGC二次开发实战指南(一):从零构建自定义地面站界面

本文详细介绍了QGC二次开发实战指南,从零开始构建自定义地面站界面。通过QT和QML技术结合MAVLINK协议,开发者可以打造适合特定业务场景的无人机监控系统,提升操作效率与用户体验。文章包含环境搭建、界面设计、数据绑定等完整开发流程,是QGC二次开发的实用教程。

weixin_28693683的博客 496

python实现数据结构--线性表

用python实现单链表、双链表、循环链表的常规操作

qq_56422229的博客 3827

BOSS直聘数据采集实战:八爪鱼工具高效爬取职位信息的完整指南

本文提供了一份使用八爪鱼采集器高效爬取BOSS直聘职位信息的完整实战指南。针对非技术用户,详细讲解了从软件安装、网址规律分析到流程配置、数据导出的每一步操作,并分享了提升采集稳定性的高级设置与避坑技巧,帮助用户轻松实现数据采集自动化。

weixin_29061509的博客 1474

LLC型自驱动半桥谐振变换器:电压电流变化与自然换向解析

变换器的工作状态经历了多个阶段,从模态一的关断状态,到模态二和三的电流供电状态,每个阶段都得到了合理的设计和优化。的工作原理,尤其是在半个周期内的电压和电流变化。上图 展示了该变换器在工作时的电压和电流波形,它为我们揭示了变换器如何通过精确的电流和电压控制,优化性能并实现高效能转换。,并根据负载情况调整电流和电压的工作模式,能够极大提升变换器的效率,尤其是在零电压开通和自然换向的设计中,发挥着关键作用。这意味着,电流会随着时间周期的变化,呈现典型的振荡波形,从而达到良好的电流控制。是两个关键的电流变量。

weixin_43199439的博客 279

数据结构之线性表(python)

线性表零个或多个数据元素的有限序列在逻辑结构上具有线性关系。将具有“一对一”关系的数据“线性”地存储到物理空间中,这种存储结构就称为线性存储结构(简称线性表线性表元素的个数nn>=0)定义为线性表的长度,当n=0时,称为空表。在较复杂的线性表中,一个数据元素可以有若干个数据项组成。线性表又可以分为顺序表顺序存储结构)和链表链式存储结构。

huaz_md的博客 1545

YOLOv10涨点改进:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF原创自研创新

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2086

《100天精通Python——基础篇 2025 第6天:线性表与列表全面解析及列表常用操作详解》

在编程的世界中,线性表是最基础、最重要的数据结构之一。本篇文章将带你深入了解线性表的概念与特点,并结合 Python 中最常见的线性表实现——列表(list),详细讲解列表的创建、访问、修改、删除、遍历等各种常用操作。通过本节的学习,你将掌握列表的核心用法,并为后续学习更复杂的数据结构打下坚实基础。

XAMO Lab|代码、调试与复盘笔记 1724

深度学习在移动开发中的应用:实时姿态估计实战

我们将使用TensorFlow Lite框架,结合专为移动端优化的MoveNet模型,实现一个能够在主流Android设备上达到30FPS的多人姿态跟踪解决方案,并深入探讨其优化技巧和实际应用场景。特别是3D姿态估计、多人长期跟踪等前沿技术的发展,将进一步推动移动端姿态估计技术的应用深度和广度。在下一篇文章中,我们将探讨深度学习在移动端的另一个创新应用:实时手势识别,包括如何在资源受限的环境中实现复杂手势的实时识别,以及这项技术在AR/VR交互、智能家居控制等场景中的应用。第四部分:典型应用场景实现。

Programming Talk 325

第21章—技术管理篇(上):身为技术人该怎样带好团队并做好管理者

上节讲了职业规划和学习提升这两个话题,随着职业规划的不断落地,或者自己能力的不断提升,大家也会逐渐被提拔成“职级更高”的人。企业规模扩张时,员工数量也会变多,意味着Boss需要更多的人来辅助管理,而管理者会从外部招聘吗?也许会,但大多企业更喜欢从内部选拔,毕竟人的天性更希望找的人值得信赖。此时,一些能力不错、做事靠谱的老员工,就会被“赶上”管理者的位子。作管理不难,但想要“”就需要一定情商。

运维老生常谈 1366

【数据结构】(Python)第二章:线性表

数据结构(Python)第二章:线性表

qq_45704789的博客 566

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数据结构python课后答案_数据结构与算法:Python语言描述 1~5章课后习题

数据结构与算法:Python语言描述 1~5章课后习题发布时间:2018-07-19 20:42,浏览次数:1885, 标签:PythonMarkDown语法写的,不知道为啥上传到优快云不生效,算了就这样将就着看吧......还有,转载请注明出处,谢谢!1)这本书为什么值得看:* Python语言描述,如果学的Python用这本书学数据结构更合适* 2016年出版,内容较新* 作者裘宗燕,北大教...

weixin_39537977的博客 4805

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

《数据结构与算法-Python语言描述》读书笔记(3)第3章线性表(关键词:数据结构/算法/Python/线性表/顺序表)

本章的预备知识(读者自己补充的):(1) 谓词(在本章中,“谓词pred”(即predicate)首次出现在“3.3 链接表 - 3.3.2 单链表 - 扫描、定位和遍历 - 按元素定位”中。)解释:离散数学都会讲的一个词语,简单来说就是代入某个论域内的变量就可以产生真或假结果的表达式。比如 x=y+3就是一个谓词,代入(4,1)就是True,代入(0,0)就是False。参考文献:如何理解计算机科

Henry1991back的博客 4280

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

资料分享:送你一本《数据结构与算法:Python语言描述》电子书!

下图为 TIOBE 3月编程语言排行榜。 从榜单来看,曾经铁打的 Java、C、C++ 局势,早已在数月前被 Python 的闯入而打破。究其根由,并非是 C++ 的应用领域正在逐渐缩减,而是随着人工智能、机器学习的崛起,适用于该领域的 Python 才会水涨船高,带起了市场份额,而且这种份额有扩大的趋势。 所以,学习 Python 也就变成对我们的一个新要求。要想深入的了解一门语言最好的方式就...

老马的程序人生 1万+

python数据结构与算法总结

python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: 《数据结构和算法对python意味着什么?》 《顺序表数据结构在python中的应用》 《python实现单向链表数据结构及其基本方法》 《python实现单向循环链表数据结构及其方法》 《python实现双向链表基本结构及其基本方法》 《python实现双向循环链表基本结构及其基本方法》 《py...

python之战 2万+

《数据结构与算法python语言描述》3.线性表

文章目录线性表的概念和表抽象数据类型表的概念和性质表抽象数据类型线性表的实现:基本考虑顺序表的实现链接表线性表的基本需要和链接表单链表基本链表操作加入元素删除元素扫描、定位和遍历求表的长度自定义异常LList类的定义,初始化函数和简单操作链表的变形和操作单链表的简单变形 在程序里,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。...

su.nn.y的博客 532

数据结构python语言描述豆瓣_数据结构:Python语言描述

图书简介配套资源:电子课件本书特色:本书各章都从基本概念入手,逐步介绍其特点和基本操作方法。本书通过丰富的应用实例和源代码使理论和应用紧密结合,并且代码有详细明了的注释。本书通过图表对数据结构及相应操作进行简单、直接的描述,使内容更加浅显易懂。《数据结构:Python语言描述》选择Python作为描述语言,在选材与编排上,贴近当前普通高等院校“数据结构”课程的现状和发展趋势,内容难度适中,突出实用...

weixin_39553757的博客 335

【Python数据结构系列】《线性表》——知识点讲解+代码实现

灵魂拷问:为什么要学数据结构? 数据结构,直白地理解,就是研究数据的存储方式。数据存储只有一个目的,即为了方便后期对数据的再利用。因此,数据在计算机存储空间的存放,决不是胡乱的,这就要求我们选择一种好的方式来存储数据,而这也是数据结构的核心内容。 可以说,数据结构是一切编程的基本。学习数据结构是学习一种思想:如何把现实问题转化为计算机语言的表示。 对于学计算机的朋友来说,学习数据结构是基本功。而对于非计算机专业,但是未来想往数据分析、大数据方向发展、或者在Python的使用上能有一个大的跨越的朋友来说,

码农-Vax天道的时间宝藏 6032

Python之数据结构--线性表

线性表 线性表的定义是描述其逻辑结构,而通常会在线性表上进行的查找、插入、删除等操作。 线性表作为一种基本的数据结构类型,在计算机存储器中的存储一般有两种形式,一种是顺序存储,一种是链式存储。 线性表的顺序存储 1. 定义 若将线性表L=(a0,a1, ……,an-1)中的各元素依次存储于计算机一片连续的存储...

TeenJeen的博客 1197

数据结构之线性表 Python实现

Python实现线性表

525小白菜的博客 2435

裘宗燕-数据结构与算法python描述笔记(线性表一)

裘宗燕-数据结构与算法python描述笔记(线性表一):内存结构模型,线性表包括:顺序表和链表

qq_42927387的博客 524

Python描述数据结构之单链表篇

本篇章主要介绍线性表,并用Python实现单链表的基本操作。

夏小悠的博客 1959

【408直通车】C+Python赋能数据结构:从底层原理到高级应用的蜕变之路——线性表

本专栏旨在通过使用C语言和Python分别实现各种考研常见数据结构,从底层原理和应用两个角度深入探索数据结构。通过深入理解数据结构的底层原理和掌握Python的高级特性,读者将能够全面掌握数据结构的知识,并且学会如何在实际应用中灵活运用。

记录我的学习历程 1273
上一篇: python中的StringIO和cStringIO模块
下一篇: 我的异常:WindowsAPI中添加音乐
cassiePython
博客等级 码龄12年 303粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值