范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

python实现双链表

  """     创建一个结点类 """   class Node:     def __init__(self, value=None):         self.value = value         self.prev = None         self.next = None   """     创建一个双链表 """   class doubleLink:     def __init__(self):         self.header = None  # 初始化头结点         self.length = 0  # 链表的长度      # 判断链表是否为空     def is_empty(self):         return self.length == 0      """         实现向双链表添加元素的功能         有三种实现方式:         1.头插法         2.尾插法         3.向双链表的指定位置添加元素     """      # 1.头插法     def __add__(self, value):         node = Node(value)         if self.is_empty():             node.prev = self.header             self.header = node             self.length += 1             return         else:             node.next = self.header             self.header.prev = node             self.header = node             self.length += 1      # 2.尾插法     def append(self, value):         node = Node(value)         if self.is_empty():             self.__add__(value)         else:             cur = self.header             while cur.next is not None:                 cur = cur.next             cur.next = node             node.prev = cur         self.length += 1      # 3.向双链表的指定位置添加元素     def insert(self, index, value):         node = Node(value)         cur = self.header         if index <= 0 or index > self.length:             print("您输入的信息有误")             return " "         if index == 1:             self.__add__(value)         for i in range(2, index):             cur = cur.next         node.next = cur.next         cur.next.prev = node         cur.next = node         node.prev = cur         self.length += 1         return value      """         实现插寻双链表元素的功能         有三种实现方式:         1.根据索引查询元素         2.直接查询元素         3.遍历整个双链表,并打印出所有的元素     """      # 1.根据索引查询元素     def __getitem__(self, index):         cur = self.header         for i in range(index - 1):             cur = cur.next         return cur.value      # 2.直接查询元素,并返回该元素的索引     def getIndex(self, value):         cur = self.header         temp = 0         while cur.next is not self.header:             if cur.value == value:                 return temp + 1             cur = cur.next             temp += 1      # 3.遍历整个双链表,并打印出所有的元素     def getAll(self):         if self.is_empty():             print("目前双链表中没有元素!")             return         cur = self.header         for i in range(self.length):             print("%d" % cur.value, end=" ")             cur = cur.next      # 4.查询某个元素的后继节点     def getItem(self, value):         cur = self.header         temp = 0         while cur.next is not self.header:             if cur.value == value:                 if cur.next is not None:                     return cur.next.value                 else:                     return -1             cur = cur.next             temp += 1      # 5.查询某个元素的前驱节点     def getPrevItem(self, value):         cur = self.header         temp = 0         while cur.next is not self.header:             if cur.value == value:                 if cur.prev is not None:                     return cur.prev.value                 else:                     return -1             cur = cur.next             temp += 1      """         实现修改指定位置元素的功能     """      def __setitem__(self, index, value):         cur = self.header         for i in range(index - 1):             cur = cur.next         cur.value = value         return value      """         实现删除双链表元素的功能             """     # 直接删除元素     def __delete__(self, value):         cur = self.header         if self.getIndex(value) == 1:             self.header = cur.next             self.length -= 1         elif self.getIndex(value) != 1:             while self.getIndex(value) != self.length:                 cur = cur.next             cur=None             self.length -= 1         else:             while cur.value != value:                 cur = cur.next             cur.prev.next = cur.next             cur.next.prev = cur.prev             self.length -= 1   if __name__ == "__main__":     s = doubleLink()     s.__add__(12)     s.__add__(13)     s.__add__(14)     s.__add__(15)     s.append(22)     s.getAll()     print(" 第%d个位置的元素是%d." % (1, s.__getitem__(1)))     print(" 元素%d在双链表的第%d个位置" % (14, s.getIndex(14)))     print("获取元素%d的后继节点%d" % (12, s.getItem(12)))     print("获取元素%d的前驱节点%d" % (13, s.getPrevItem(13)))     print("在第%d个位置插入元素%d:" % (2, s.insert(2, 45)))     s.getAll()     print(" 将第%d个位置的元素修改为%d:" % (1, s.__setitem__(1, 900)))     s.getAll()     print(" 删除第%d个元素:" % 5)     s.__delitem__(5)     print(" 删除元素22:")     s.__delete__(22)     s.getAll()

鸿蒙用户已破3000万,再获格力强援,誓要打破安卓垄断局面近日华为方面宣布鸿蒙系统上线一个月以来已获得3000万用户,如今格力宣布也将采用鸿蒙系统,作为国内前三强家电企业之一的格力支持鸿蒙,无疑是如虎添翼,鸿蒙用户可望加速增长,打破安卓系传诺基亚再弃安卓,欲靠中国鸿蒙起飞?华为不靠谱自从诺基亚退出手机市场后,关于这个品牌的消息少之又少,甚至大家都快忘记它了不过,就在日前,有消息传出,诺基亚将搭上华为最新的鸿蒙系统强势回归?数码科技要闻根据新闻描述,诺基亚正酝酿五千以上的小米手机你会买吗?真实情况在这里办公室有个同事以前一直用的华为Mate系列高端机,最近突然换成了小米11Pro手机。我们都很吃惊,问他为什么从华为换到了小米,他回答到华为高端机现在抢不到啊,又不想用苹果只能选择小MARVELR视觉融合自动泊车和普通的自动泊车有啥不同?1985年,当迈克尔J福克斯驾驶着时间机器携手回到未来问世时,彼时的人们除了感叹平行宇宙的概念,更是对电影中那辆超凡脱俗的汽车念念不忘。数十年后的今天,互联网汽车问世令外界开始对未单耳耳聋需要配助听器吗?耳朵听力只要下降了就需要佩戴助听器的,因为助听器不只是能帮助你所缺失的听力有所补偿,帮助你在没戴助听器听听不到的声音,好一点的助听器还可以保护残余听力,单耳聋也是需要佩戴助听器的,荣耀play4tpro荣耀x10华为nova6,哪一个更值得买?感谢您的阅读。稍微知道的,一看就知道荣耀play4tpro和X10手机和华为nova64G版手机有差距,不过差距他们的差距有多大,只有比过才会知道。虽然荣耀X10是5G手机,性能上求推荐一个1500价位的手机,处理器好点的,性价比高的手机?1500元价位有什么性价比比较高的手机呢?下面我推荐三款手机供题主选择,希望能帮到题主,下面我们就来看一下,如果有这方面购机需求的朋友也可以参考一下。荣耀20S正面采用了6。26英作为生活和工作的重要工具,手机有哪些设计是反人类的随着手机性能的越发强大,它现在已经成为人们刚需的重要工具,无论是日常生活里的社交还是工作,都离不开它。可以说,在21世纪你没有手机,基本上等于在这个世界上失联,没人能够找到你,你也iPhone13系列差不多就这样了!现在就等发布了相信大家在网上看iPhone13系列,都了解得七七八八了,这里给大家汇总一下,先直接上图总体外观和上一代12差不多,就13mini和13摄像头摆放有一点差别,摄像头也没那么凸,刘海原中国移动董事长称要重新定义手机这一举动或可引爆5G应用运营商财经吴碧慧文如今智能手机的普及越来越广,小至几岁儿童,大致耄耋老人都在使用,而早年用于通话的手机也随着智能手机的发展转变为多媒体工具。面对这样的生活环境,原中国移动董事长称为紫色经典传承OPPOReno6星黛紫配色开售在即OPPORene6星黛紫新配色在本周公布过后,立刻就吸引了不少用户的关注,新配色与晶钻工艺结合起来的视觉效果相当养眼,颜色的表达上也堪称百搭,无论是什么样的用户都能轻松驾驭这个配色
创新融资解决高新技术企业资金问题学习力是人的核心竞争力,而融资策划能力是高新技术企业的核心竞争力!4月2122日,中国资本策划研究院(CCP)院长朱耿洲博士应邀为上海交通大学新金融EMAB高级研修班(第9期)学员爱晒品质生活不晒衣物,小天鹅打造行业首场阳台沉浸式场景直播居家生活健康无疑是今年最受关注的两大关键词,如何在家也能拥有快乐生活,如何获得更加健康的衣食住行,成为人们迫切的现实需求。市场的巨大机遇让洗衣机厂商纷纷出手,不断在产品上推陈出新,华为WATCHFIT评测买手表送运动教练可还行?继华为WATCH和华为WATCHGT两个圆形智能手表系列之后,在12月23日的nova8发布会上,华为首款方形轻智能手表华为WATCHFIT正式发布。那么这款全新的智能手表都有什么全面不止于此,华为MateBookD142021图评12月23日,华为MateBookD142021款笔记本本正式发布,作为华为全新笔记本电脑产品,华为MateBookD142021款在保持金属机身和轻薄设计同时,不仅性能再次提升,349元的智能手表都能干啥?AmazfitPop评测真相了之前的文章中我们说到过,智能手表市场中,还有一个来自于手机厂之外的扛把子,就是华米。换句话说,也正是因为其不做手机专注智能手表的身份,所以华米的智能手表产品覆盖也要比手机厂更广一些华为智选车载智慧屏评测,1699元让老汽车进入智能时代不知大家有无留意到,汽车行业正悄然发生百年大变局,智能化成了汽车领域的高频热词,在这样的大环境之下,许多新面世的车都强调人机交互的智能化体验。但说实话,市面上大部分智能车机体验并不手环竟也进入全面屏时代,荣耀手环6真机上手有点酷几年前,运动手环刚刚出现,很多朋友在称赞其让运动健康数据监测更加便捷的同时,还要忍不住吐槽一句怎么运动手环就不能加个屏幕?每次看数据时还必须得把手机掏出来,通过手机屏幕看,真麻烦。图说华为WATCHGT2ProECG款,心电采集有点酷从最初只是用来进行运动监测接收通知,到后来的心率监测睡眠监测压力监测血氧饱和度监测智能手表的功能可以说正在向着日趋专业化的方向发展。10月30日,拥有长续航基因的华为WATCHGT为女性而生,蔷薇粉AmazfitGTS2mini实测如今的智能手表,为了在大屏幕基础上实现长续航,大多做得稍显厚重,更适用于体型壮硕的用户,而对于身形较瘦,手腕较细的用户,尤其是女性用户则很难驾驭。也正因如此,在很长一段时间里,兼顾科创板,该如何估值?随着科创板的步伐越来越近,上交所也累计召开了超过9场机构座谈会,市场最关心的其实还是科创板项目的上市估值谁说了算?如何重建一个新的估值系统?以及发行定价能否真正实现市场化?随着科创给消费者更多折扣国美折上折APP用户版开启试运营国美旗下折上折平台又有新动作!8月12日,七夕真爱票亮免单折上折APP用户版试运营暨折上折券放送会在鹏润大厦36层举行。在国家走过百年大变局,站在百年新征程的节点上,新的机遇不断到