关系经济人类预测化学自然
投稿投诉
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产

PYTHON的数据结构和算法介绍

8月4日 回头爱投稿
  当你听到数据结构时,你会想到什么?
  数据结构是根据类型组织和分组数据的容器。它们基于可变性和顺序而不同。可变性是指创建后改变对象的能力。我们有两种类型的数据结构,内置数据结构和用户定义的数据结构。
  什么是数据算法是由计算机执行的一系列步骤,接受输入并将其转换为目标输出。内置数据结构列表
  列表是用方括号定义的,包含用逗号分隔的数据。该列表是可变的和有序的。它可以包含不同数据类型的混合。
  months〔january,february,march,april,may,june,july,august,september,october,november,december〕
  print(months〔0〕)printtheelementwithindex0
  print(months〔0:7〕)alltheelementsfromindex0to6
  months〔0〕birthdayexchangethevalueinindex0withthewordbirthday
  print(months)元组
  元组是另一种容器。它是不可变有序元素序列的数据类型。不可变的,因为你不能从元组中添加和删除元素,或者就地排序。
  length,width,height9,3,1Wecanassignmultiplevariablesinoneshot
  print(Thedimensionsare{}{}{}。format(length,width,height))
  一组
  集合是唯一元素的可变且无序的集合。它可以让我们快速地从列表中删除重复项。
  numbers〔1,2,3,4,6,3,3〕
  uniquenumsset(numbers)
  print(uniquenums)
  models{declan,gift,jabali,viola,kinya,nick,betty}
  print(davisinmodels)checkifthereisturnerinthesetmodels
  models。add(davis)
  print(model。pop())removethelastitem
  字典
  字典是可变和无序的数据结构。它允许存储一对项目(即键和值)
  下面的例子显示了将容器包含到其他容器中来创建复合数据结构的可能性。music{jazz:{coltrane:Inasentimentmood,M。Davis:BlueinGreen,T。Monk:DontBlameMe},classical:{Bach:cellosuit,Mozart:lacrimosa,satle:Gymnopedie}}print(music〔jazz〕〔coltrane〕)weselectthevalueofthekeycoltraneprint(music〔classical〕〔mozart〕)
  用户定义的数据结构
  使用数组的堆栈堆栈是一种线性数据结构,其中元素按顺序排列。它遵循L。I。F。O的机制,意思是后进先出。因此,最后插入的元素将作为第一个元素被删除。这些操作是:将元素推入堆栈。从堆栈中删除一个元素。要检查的条件
  溢出情况当我们试图在一个已经有最大元素的堆栈中再放一个元素时,就会出现这种情况。
  下溢情况当我们试图从一个空堆栈中删除一个元素时,就会出现这种情况。classmystack:definit(self):self。data〔〕deflength(self):lengthofthelistreturnlen(self。data)defisfull(self):checkifthelistisfullornotiflen(self。data)5:returnTrueelse:returnFalsedefpush(self,element):insertanewelementiflen(self。data)5:self。data。append(element)else:returnoverflowdefpop(self):removethelastelementfromalistiflen(self。data)0:returnunderflowelse:returnself。data。pop()amystack()Icreatemyobjecta。push(10)inserttheelementa。push(23)a。push(25)a。push(27)a。push(11)print(a。length())print(a。isfull())print(a。data)print(a。push(31))wetrytoinsertonemoreelementinthelisttheoutputwillbeoverflowprint(a。pop())print(a。pop())print(a。pop())print(a。pop())print(a。pop())print(a。pop())trytodeleteanelementinalistwithoutelementstheoutputwillbeunderflow使用数组排队
  队列是一种线性数据结构,其中的元素按顺序排列。它遵循先进先出的F。I。F。O机制。
  描述队列特征的方面
  两端:
  前端指向起始元素。
  指向最后一个元素。
  有两种操作:enqueue将元素插入队列。它将在后方完成。出列从队列中删除元素。这将在前线完成。有两个条件。溢出插入到一个已满的队列中。下溢从空队列中删除。classmyqueue:definit(self):self。data〔〕deflength(self):returnlen(self。data)defenque(self,element):puttheelementinthequeueiflen(self。data)5:returnself。data。append(element)else:returnoverflowdefdeque(self):removethefirstelementthatwehaveputinqueueiflen(self。data)0:returnunderflowelse:self。data。pop(0)bmyqueue()b。enque(2)puttheelementintothequeueb。enque(3)b。enque(4)b。enque(5)print(b。data)b。deque()removethefirstelementthatwehaveputinthequeueprint(b。data)树(普通树)
  树用于定义层次结构。它从根节点开始,再往下,最后的节点称为子节点。
  在本文中,我主要关注二叉树。二叉树是一种树形数据结构,其中每个节点最多有两个孩子,称为左孩子和右孩子。
  createtheclassNodeandtheattrbutesclassNode:definit(self,letter):self。childleftNoneself。childrightNoneself。nodedatalettercreatethenodesforthetreerootNode(A)root。childleftNode(B)root。childrightNode(C)root。childleft。childleftNode(D)root。childleft。childrightNode(E)
  链表
  它是具有一系列连接节点的线性数据。每个节点存储数据并显示到下一个节点的路由。它们用来实现撤销功能和动态内存分配。classLinkedList:definit(self):self。headNonedefiter(self):nodeself。headwhilenodeisnotNone:yieldnodenodenode。nextdefrepr(self):nodes〔〕fornodeinself:nodes。append(node。val)return。join(nodes)defaddtotail(self,node):ifself。headNone:self。headnodereturnforcurrentnodeinself:passcurrentnode。setnext(node)defremovefromhead(self):ifself。headNone:returnNonetempself。headself。headself。head。nextreturntempclassNode:definit(self,val):self。valvalself。nextNonedefsetnext(self,node):self。nextnodedefrepr(self):returnself。val
  图表
  这是一种数据结构,它收集了具有连接到其他节点的数据的节点。
  它包括:顶点的集合。边E的集合,表示为有序的顶点对(u,v)
  算法
  在算法方面,我不会讲得太深,只是陈述方法和类型:分而治之以将问题分成子部分并分别解决而闻名。动态它将问题分成子部分,记住子部分的结果,并将其应用于类似的问题。贪婪算法在解决问题时采取最简单的步骤,而不用担心未来的复杂性。算法的类型树遍历算法是非线性数据结构。以根和节点为特征。这里有三种类型的按序遍历,前序遍历和后序遍历。排序算法用于按照给定的顺序对数据进行排序。可分为归并排序和冒泡排序。搜索算法用于寻找给定数据集中存在的一些元素。一些类型的搜索算法是:线性搜索,二分搜索法和指数搜索。
  原文:https:www。tuicool。comarticleshitVRRvYr3
投诉 评论 转载

发量逆生长!七个小方法,快速止脱育发就此告别秃头星人发量逆生长!七个小方法,快速止脱育发:就此告别秃头星人!脱发的苦,只有脱发严重的人才能懂,那些还未脱发或还在脱发起步的人群,希望不要有一天感受这种痛苦,而要避免脱发……影视致敬素材提升游戏交互体验微软帝国时代手游将上线本周内容一览:素材创意解析:影视致敬剧情提升游戏交互体验微软《帝国时代》手游将上线AppStore两大新广告位已正式上线《维多利亚3》Steam在线破7万人王者荣耀蝉联9月全球……国乒决战张本智和!男双冠军呼之欲出,2大直拍名将承担抗日重任乒乓球WTT突尼斯赛即将结束,目前男双项目的决赛名单已经出炉,国乒两大直拍名将赵子豪、薛飞成为最大黑马,连赢2021年世乒赛男双冠军法尔克卡尔松(瑞典)、2013年世乒赛男双冠……PYTHON的数据结构和算法介绍当你听到数据结构时,你会想到什么?数据结构是根据类型组织和分组数据的容器。它们基于可变性和顺序而不同。可变性是指创建后改变对象的能力。我们有两种类型的数据结构,内置数据结……日薪千元5倍派费,顺丰菜鸟豪掷数亿春节留人,快递小哥不如回家本文来源:时代财经作者:林心林又是一年快递不打烊。图片来源:图虫创意尚未从网点瘫痪、人手不足中完全恢复过来的快递业,又在春节前面临一次不小的挑战。202……发改委民间投资增长低于整体投资增速,需加大政策支持力度11月16日,国家发改委举行11月新闻发布会,国家发改委新闻发言人孟玮表示,民间投资是全社会固定资产投资的主力军,也是提升投资质量、增强投资活力的关键力量。尽管面对疫情冲击,今……成年人喝奶粉需要了解哪些常识?这是一个值得探讨的问题,我们知道奶粉由脱水的巴氏杀菌牛奶制成,它是一种通过将牛奶蒸发至干而制成的乳制品,这有助于牛奶的保存。奶粉的平均保质期通常为18个月。与奶粉相比,新鲜牛奶……泰国芭提雅步行街大翻新!计划打造成新地标10月25日,泰媒报道称,泰国芭提雅市政府进行了一项步行街景观改善项目,通过与步行街商家及街头涂鸦艺术创作者合作,对当地步行街进行涂鸦修饰,旨在使步行街焕然一新,并打造成为吸引……NBA后卫单挑能力分4个等级库里A级,科比SS级,那SSS有随着时代的不断发展,篮球场上的五个位置分工要求也并没有那么严格,越来越多的控卫承担起进攻的大任,打的越来越像是之前的得分后卫。而众所周知,在比赛的关键时刻,巨星的单挑能力有多强……暴雪停服倒计时魔兽玩家高价续时长,低价甩装备明年1月下旬,网易和暴雪将要正式分手。红星资本局注意到,在停服倒计时之际,官方关闭了相关游戏的充值通道。对魔兽玩家们来说,这意味着可能没有时间继续在艾泽拉斯续命了。……WTA最新排名公布斯瓦泰克夺冠稳居世界第一!张帅重返前三十北京时间9月12日,WTA官方公布了最新一期的世界排名,经过两周美网的激烈争夺之后,世界排名发生了较大的变化。首夺美网冠军的斯瓦泰克继续稳居世界第一宝座!荣获美网亚军的非洲一姐……120张图表研判2022年Q4Web3和数字资产原文作者:JoelJohn原文编译:Felix最近有很多关于Web3和数字资产的FUD。熊市震荡。以下是大约120个图表的汇编,这些图表将我们所处的位置置于上……
急性单纯性阑尾炎的诊断方法捣蛋包的检讨书急性酒精中毒的病因有哪些纹眉多长时间后可以用洗面奶洗脸晚节不保老艺人现状李立群称不想退网,潘长江胡言乱语放飞个位造句用个位造句大全幻视头上的宝石是什么从哪里来的太阳加时擒国王5连胜布克317六犯离场小萨伤退黄发垂髫中的黄发指什么两天两发!西昌卫星发射中心再破新纪录甘露之变唐文宗为什么抛弃李训和郑注人教造句用人教造句大全
工作计划天秤座男和狮子星座女一年不下床(狮子座配什么星座)年后的应征癌症患者放化疗期间能不能吃中药?老人放风筝前要活动颈部吗观察仓鼠看男人如何招架女人的傻问题天天飞车卡车超车的技巧月亮星座的秘密(月亮星座揭示你性格中的小秘密)赞美运动员的优秀段落新规酒驾保险公司赔吗人气梨花头流行时尚首选

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找菏泽德阳山西湖州宝鸡上海茂名内江三亚信阳长春北海西安安徽黄石烟台沧州湛江肇庆鹤壁六安韶关成都钦州