当前位置: 首页 > news >正文

上海品牌网站建设公济南网站建设sdjy6

上海品牌网站建设公,济南网站建设sdjy6,东莞宣传网站,查域名备案信息文章目录 一、Python实现数据结构1.1 python实现单向链表1.2 python实现单向循环链表1.3 python实现双向链表 一、Python实现数据结构 1.1 python实现单向链表 singleLinkedList.py class SingleNode:the node of single link listdef … 文章目录 一、Python实现数据结构1.1 python实现单向链表1.2 python实现单向循环链表1.3 python实现双向链表 一、Python实现数据结构 1.1 python实现单向链表 singleLinkedList.py class SingleNode:the node of single link listdef __init__(self, item):self.item itemself.next Nonedef __str__(self):return str(self.item)class SingleLinkList:sing link listdef __init__(self):self._head Nonedef is_empty(self):判断链表是否为空return self._head is Nonedef length(self):获取链表长度cur self._headcount 0while cur is not None:count 1cur cur.nextreturn countdef travel(self):遍历链表cur self._headwhile cur is not None:print(cur.item)cur cur.nextprint()def add(self, item):链表头部添加元素node SingleNode(item)node.next self._headself._head nodedef append(self, item):链表尾部添加元素node SingleNode(item)if self.is_empty():self._head nodeelse:cur self._headwhile cur.next is not None:cur cur.next此时cur指向最后一个节点nextNonecur.next nodedef insert(self, pos, item):指定位置添加元素# 若pos小于0则执行头部插入if pos 0:self.add(item)# 若pos大鱼链表长度则执行尾部插入elif pos self.length() - 1:self.append(item)else:node SingleNode(item)cur self._headcur_pos 0while cur.next is not None:获取插入位置的上一个节点if pos - 1 cur_pos:node.next cur.nextcur.next nodebreakcur cur.nextcur_pos 1def remove(self, item):删除节点if self.is_empty():returncur self._headif cur.item item:self._head cur.nextelse:while cur.next is not None:if cur.next.item item:cur.next cur.next.nextbreakcur cur.nextdef search(self, item):查找节点位置cur self._headcount 0while cur is not None:if cur.item item:return countcur cur.nextcount 1return -1# if __name__ __main__: # ll SingleLinkList() # ll.add(1) # ll.add(2) # ll.append(3) # ll.insert(2,4) # print(length: , ll.length()) # ll.travel() # print(search(3): , ll.search(3)) # print(search(5): , ll.search(5)) # ll.remove(1) # print(length: , ll.length()) # ll.travel()1.2 python实现单向循环链表 sinCycLinkedList.py class Node:def __init__(self, item):self.item itemself.next Nonedef __str__(self):return str(self.item)class SinCycLinkedList:单向循环链表def __init__(self):self._head Nonedef is_empty(self):判断链表受否为空return self._head is Nonedef length(self):返回链表长度if self.is_empty():return 0cur self._headcount 1while cur.next ! self._head:count 1cur cur.nextreturn countdef travel(self):遍历链表if self.is_empty():returncur self._headprint(cur.item)while cur.next ! self._head:cur cur.nextprint(cur.item)print()def add(self, item):链表头部添加节点node Node(item)if self.is_empty():self._head nodenode.next nodeelse:cur self._headnode.next self._headwhile cur.next ! self._head:cur cur.nextcur.next nodeself._head nodedef append(self, item):链表尾部添加节点node Node(item)if self.is_empty():self._head nodenode.next self._headelse:cur self._headwhile cur.next ! self._head:cur cur.nextcur.next nodenode.next self._headdef insert(self, pos, item):链表指定位置插入节点if pos 0:self.add(item)elif pos self.length() - 1:self.append(item)else:cur self._headcur_pos 0node Node(item)while cur.next ! self._head:if cur_pos pos - 1:node.next cur.nextcur.next nodebreakcur cur.nextcur_pos 1def remove(self, item):删除链表指定节点if self.is_empty():returnpre self._headif pre.item item:cur prewhile cur.next ! pre:cur cur.nextcur.next pre.nextself._head pre.nextelse:cur prewhile cur.next ! pre:if cur.next.item item:cur.next cur.next.next# breakcur cur.nextdef search(self, item):查找节点返回下标cur self._headcount 0while cur.next ! self._head:if cur.item item:return countcount 1cur cur.nextreturn -1# if __name__ __main__: # ll SinCycLinkedList() # ll.add(1) # ll.add(2) # ll.travel() # ll.append(3) # ll.insert(2, 4) # ll.insert(4, 5) # ll.insert(0, 6) # print(length , ll.length()) # ll.travel() # print(search(3), ll.search(3)) # print(search(7), ll.search(7)) # print(search(6), ll.search(6)) # print(remove(1)) # ll.remove(1) # print(length: , ll.length()) # print(remove(6)) # ll.remove(6) # ll.travel()1.3 python实现双向链表 doubleLinkedList.py class Node:def __init__(self, item):self.item itemself.previous Noneself.next Nonedef __str__(self):return str(self.item)class DLinkedList:双向链表def __init__(self):self._head Nonedef is_empty(self):判断链表是否为空return self._head is Nonedef length(self):返回链表长度if self.is_empty():return 0count 1cur self._headwhile cur.next is not None:count 1cur cur.nextreturn countdef travel(self):遍历链表if self.is_empty():returncur self._headprint(cur.item)while cur.next is not None:cur cur.nextprint(cur.item)print()def add(self, item):链表头部添加节点node Node(item)if self.is_empty():self._head nodeelse:node.next self._headself._head.previous nodeself._head nodedef append(self, item):链表尾部添加节点node Node(item)if self.is_empty():self._head nodeelse:cur self._headwhile cur.next is not None:cur cur.nextcur.next nodenode.previous curdef insert(self, pos, item):链表指定位置插入节点if pos 0:self.add(item)elif pos self.length() - 1:self.append(item)else:cur self._headnode Node(item)cur_pos 0while cur is not None:if cur_pos pos - 1:node.next cur.nextnode.previous curcur.next nodecur.next.previous nodebreakcur cur.nextcur_pos 1def remove(self, item):链表删除指定元素if self.is_empty():returncur self._headif cur.item item:self._head cur.nextself._head.previous Noneelse:while cur.next is not None:if cur.item item:cur.previous.next cur.nextcur.next.previous cur.previousreturncur cur.nextif cur.item item:cur.previous.next Nonedef search(self, item):查找链表指定元素返回元素下标cur_pos 0cur self._headwhile cur is not None:if cur.item item:return cur_poscur cur.nextcur_pos 1return -1if __name__ __main__:ll DLinkedList()ll.add(1)ll.add(2)ll.append(3)ll.insert(2, 4)ll.insert(4, 5)ll.insert(0, 6)print(length: , ll.length()) ll.travel()print(search(3) , ll.search(3))print(search(4) , ll.search(4))print(search(10) , ll.search(10))ll.remove(1)print(length: , ll.length())ll.travel()print(删除首节点 remove(6): )ll.remove(6)ll.travel()print(删除尾节点 remove(5): )ll.remove(5)ll.travel()
http://www.hkea.cn/news/14449397/

相关文章:

  • 义乌1688网站网页设计新手做电商卖什么好
  • 汕头制作网站关于做网站的书
  • 上海 专业网站建设wordpress相册火车头发布
  • 柳州市网站建设新乡市网站建设电脑培训班
  • 响应式网站建设推荐乐云践新丹江口网站建设
  • 微信公众号的微网站怎么做的c 网站开发实例教程
  • 建设一个电商网站的步骤重庆丰都建设局网站
  • 网站用什么做seo关键词优化推广哪家好
  • 免费手机图片编辑器重庆网站优化排名推广
  • 网站文章只被收录网站首页网站描述怎么写利于seo
  • 谁有网站推荐一下好吗切片
  • 汝州住房和城乡建设网站获客牛全网营销
  • 音乐网站开发需求广州网站建设怎样做
  • 潍坊网站建设自助建站平台做网站推广
  • 网站网络推广软件哪个网站论文多
  • 为何打不开中国建设银行网站校园二手市场网站开发
  • 旅游网站建设目标分析山东省济宁市嘉祥县建设局网站
  • 做个企业网站内网网站开发报价
  • 长沙租车网站排名360网站卖东西怎么做
  • 网站建设优化哪家公司好小米新手机发布
  • wordpress建立多站点自已建个人网站
  • 网站做不做301莱芜一中官网
  • 简单的企业网站源码福建漳州建设局网站
  • 宁德市蕉城区建设局网站天津建设厅网站
  • 哪个网站做恒生指数最安全php 网站开发心得
  • 做网站需要哪些东西和步骤安阳市网站制作公司
  • 网站建设价格报价上海建设银行官网网站
  • 苏州外贸网站建设公司排名自己买一个服务器怎么做网站
  • 企业网站 流程襄阳seo顾问
  • 长沙公司网站设计报价公关公司有哪些职位