Python实现循环单链表
创建一个节点类classNode:definit(self,data):self。datadataself。nextNone定义一个循环单链表classCycleLink:definit(self):self。headerNoneself。length0判断链表是否为空defisempty(self):returnnotself。header实现向链表添加数据的功能有三种实现方式:1。头插法2。尾插法3。根据指定位置向单链表插入元素1。头插法defadd(self,value):nodeNode(value)ifself。isempty():self。headernodenode。nextself。headerself。length1returncurself。headerwhilecur。next!self。header:curcur。nextcur。nextnodenode。nextself。headerself。headernodeself。length12。尾插法defappend(self,value):nodeNode(value)curself。headerifself。isempty():self。add(value)returnwhilecur。next!self。header:curcur。nextcur。nextnodenode。nextself。headerself。length13。根据指定位置向单链表插入元素definsert(self,index,value):ifindex1:self。add(value)elifindexself。length1:self。append(value)else:curself。headernodeNode(value)temp1whiletemp!index1:curcur。nexttemp1node。nextcur。nextcur。nextnodeself。length1returnvalue实现查询循环链表的功能有三种实现方式:1。根据索引查询单链表的对应元素2。直接查询元素3。遍历整个单链表,并打印出所有元素1。根据索引查询单链表的对应元素defgetitem(self,index):ifindex0orindexself。length:raiseIndexErrorcurself。headerforiinrange(index1):curcur。nextreturncur。data2。直接查询元素,并返回元素的索引defisExist(self,value):ifself。isempty():return1temp0curself。headerwhilecur。next!self。header:ifcur。datavalue:returntemp1curcur。nexttemp1ifcur。datavalue:returntemp1return13。遍历整个单链表,并打印出所有元素defgetAll(self):ifself。isempty():print(目前链表中没有元素!)returncurself。headerwhilecur。nextisnotself。header:print(dcur。data,end)curcur。nextprint(dcur。data,end)实现修改元素的功能defsetitem(self,index,value):ifindex0orindexself。length:raiseIndexErrorcurself。headerforiinrange(index1):curcur。nextcur。datavaluereturnvalue实现删除元素的功能有三种实现方式:1。根据索引删除元素2。直接删除元素3。清空循环单链表1。根据索引删除元素defdelitem(self,index):curself。headerpreNoneforiinrange(index1):precurcurcur。nextifcurself。header:preself。headerwhilepre。next!self。header:prepre。nextpre。nextself。header。nextself。headerself。header。nextself。length1returnpre。nextcur。nextself。length1return2。直接删除元素defdelete(self,value):curself。headerpreNonewhilecur。next!self。header:ifcur。datavalue:ifcurself。header:preself。headerwhilepre。next!self。header:prepre。nextpre。nextcur。nextself。headercur。nextself。length1returnpre。nextcur。nextself。length1returnprecurcurcur。nextifcur。datavalue:pre。mextcur。nextpre。nextcur。nextself。length1return3。清空循环单链表defclear(self):self。headerNoneifnamemain:sCycleLink()s。add(12)s。add(13)s。add(15)s。append(22)s。append(23)s。append(25)s。getAll()print(在链表的第d个位置插入元素d:(2,s。insert(2,44)))s。getAll()print(目前链表中元素的数量:,s。length)print(查询链表第d个位置的元素是d。(4,s。getitem(4)))print(修改第d个元素为d!(1,s。setitem(1,90)))s。getAll()print(删除第d个元素1,s。delitem(1))s。getAll()print(目前链表中元素的数量:,s。length)print(删除链表元素d22,s。delete(22))s。getAll()print(目前链表中元素的数量:,s。length)print(清空链表中的元素:)s。clear()s。getAll()
邻家诗话第二季温暖回归一篇优美的诗词,一首好听的乐曲,伴随着一份恬静悠然,由腾讯视频、河北卫视、一心明德文化有限公司联合出品的诗歌实景雅集类文化综艺节目《邻家诗话》将于12月21日起,每周一晚20:……
飞利浦VTR9800关于视频会议的精简构建思路早前,飞利浦在其音视频设备官方平台正式推出会务通VTR9800,智能会议终端设备,产品以中小型会议应用作清晰的市场定位,为更多企业解决视频会议精简式构建问题。VTR980……
蒋一侨美好的时光完美收官有笑有泪精彩继续由浙江卫视打造的街头音乐创演治愈综艺《美好的时光》已陪伴我们九期悠闲时光,而在12月5日本周六晚20:30分,本节目也迎来了它的收官之旅。在上期节目中,蒋一侨在广州的多益产业园……
李智楠演员请就位2圆满收官初心未改出发崭新起点大型表演竞技类综艺《演员请就位》第二季于上周六落定收官。怀抱着表演初心的各位优秀演员们,恪尽演员之名,在竞技剧目中绽放自我、超越自我,令观众们透过角色与舞台,去发现他们更大的惊……
6款夏日救星粉底液,618必囤!谁才是你心中的C位?近日,孙俪、杨幂、刘诗诗等时尚活动照上了娱乐榜热搜,不管是流出的照片还是视频,个个都是又美又飒来源:微博,侵删我发现明星不管在那种场合,妆容都是化到了精致,虽然对于……
我的白鲸男友杀青李俊辰诠释霸道男主星关系9月26日讯由嘉本影视、福佑志华影视、爱奇艺文学、金智海影视以及小金鱼影业联合出品的奇幻爱情悬疑网剧《我的白鲸男友》已经正式杀青,该剧由邓红超执导,李俊辰等人联袂出演。李……
三星预告全球首款PCIe5。0硬盘,总带宽高达16GBs今天,三星预告了全球第一款PCIe5。0SSD,型号PM1743,面向数据中心的企业级产品。它采用最新的V6TLC闪存芯片,支持PCIe5。0x4或PCIe5。02x2,总带宽……
为什么手机充电器输出电压才5V,却有人触电的时候死亡?应悟空小秘书邀答!为什么手机充电器输出电压才5V,却有人触电的时候死亡?答:发生手机充电时触电事故多发生在以下几个原因:1手机充电器不是正规产品、2手机……
电商网站如何选择香港服务器?主机侦探网整理回答:第一,香港服务器不像其他的国内服务器那样麻烦,它不需要备案,很多个人还是企业在选择服务器的时候都会考虑需不需要备案的因素,不需要备案的话就省去了很多的……
阚清子亲爱的自己火热定档突破自我首次挑战职场妈妈星关系9月3日讯都市励志情感剧《亲爱的自己》昨日正式定档,将在9月7日于湖南卫视金鹰独播剧场播出、芒果TV全网独播。与定档消息一同释出的六张角色海报更是喜提热搜,引发全网关注。……
海棠经雨胭脂透收官以现实为导向彰显真善美内核由广厦传媒有限公司出品,导演何澍培执导,邓伦、李一桐、应昊茗、张雅卓、方中信、李若彤等主演的民国言情剧《海棠经雨胭脂透》,正在浙江卫视周播剧场每周一至周四晚22:00热播。自该……
苹果安卓之争1苹果的优点系统流畅广告少广告少广告少重要的事情说三遍!!!相机白天拍照不错基本上能全部还原眼睛看到的色彩。晚上不行晚上不行晚上不行鬼影鬼影鬼影2苹果缺点续航不行快充不行……