博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单循环链表
阅读量:6070 次
发布时间:2019-06-20

本文共 2988 字,大约阅读时间需要 9 分钟。

class Node():     def __init__(self,item):         self.item=item         self.next=None class CycleSingleLinkList():     def __init__(self,node=None):         self.__head=node     def is_empty(self):         return self.__head is None     def length(self):         if self.is_empty():             return 0         count=1         cur=self.__head         while cur.next is not self.__head:             count+=1             cur=cur.next         return count     def travel(self):         if self.is_empty():             print('')             return         cur=self.__head         while cur.next is not self.__head:             print(cur.item,end='')             cur=cur.next         print(cur.item)     def search(self,item):         if self.is_empty():             return False         cur=self.__head         while cur.next is not self.__head:             if cur.item==item:                 return True             cur=cur.next         if cur.item==item:             return True         return False     def add(self,item):         node=Node(item)         if self.is_empty():             self.__head=node             node.next=self.__head         cur=self.__head         while cur.next is not self.__head:             cur=cur.next         cur.next=node         node.next=self.__head         self.__head=node     def append(self,item):         node=Node(item)         if self.is_empty():             self.__head = node             node.next=self.__head         cur=self.__head         while cur.next is not self.__head:             cur=cur.next         cur.next=node         node.next=self.__head     def insert(self,pos,item):         node=Node(item)         if pos<=0:             self.add(item)         elif pos>self.length():             self.append(item)         else:             cur=self.__head             count=0             while count<(pos-1):                 cur=cur.next                 count+=1             node.next=cur.next             cur.next=node     def remove(self,item):         if self.is_empty():             return         cur=self.__head         pre=None         while cur.next is not self.__head:             if cur.item==item:                 if cur==self.__head:                     tnode=self.__head                     while tnode.next is not self.__head:                         tnode=tnode.next                     self.__head=cur.next                     tnode.next=self.__head                 else:                     pre.next=cur.next                     return             pre=cur             cur=cur.next         if cur.item==item:             if cur==self.__head:                 self.__head=None             else:                 pre.next=self.__head if __name__ == '__main__':     cc=CycleSingleLinkList()     for i in range(10):         cc.append(i)     cc.travel()     print(cc.length())     cc.add(1)     cc.travel()     cc.insert(2,3)     cc.travel()     cc.remove(3)     cc.travel()

转载于:https://www.cnblogs.com/zhangweijie01/p/10229822.html

你可能感兴趣的文章
String, StringBuffer, StringBuilder
查看>>
所有的设计思想都是源于现实的实际需求
查看>>
打印机ip
查看>>
页面接口防刷 解决思路一nginx
查看>>
php接口的问题
查看>>
《MySQL入门很简单》学习笔记1——概论,数据类型,操作数据库
查看>>
jvm生命周期之类的加载、连接、初始化
查看>>
centos6安装memcached,并配置php扩展
查看>>
智慧锅炉物联网云平台方案
查看>>
Mac修改开机启动项
查看>>
MySQL日志文件
查看>>
设置wifi打开或者关闭
查看>>
《快学Scala》勘误表
查看>>
安装php扩展 ffmpeg-php
查看>>
隐藏的数据类型-引用
查看>>
struts2自动跳转求解啊啊啊啊啊啊啊啊啊啊啊啊
查看>>
朱蓓蓓--秦时明月的触控之路
查看>>
开源 免费 java CMS - FreeCMS-信息页静态化参数
查看>>
NoSQL 学习笔记
查看>>
Java BIO、NIO、AIO 比较
查看>>