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

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

# 定义节点 class Node():     def __init__(self,item):         self.item=item         self.next=None # 单链表实现 class SingleLinkList():     # 定义头节点     def __init__(self,node=None):         self.__head=node     # 判断链表是否为空     def is_empty(self):         return self.__head is None     # 链表长度     def length(self):         cur=self.__head         count=0         while cur is not None:             count+=1             cur=cur.next         return count     # 循环链表     def travel(self):         cur=self.__head         while cur is not None:             print(cur.item,end='')             cur=cur.next         print('')     # 搜索节点     def search(self,item):         cur=self.__head         while cur is not None:             if cur.item==item:                 return True             cur=cur.next         return False     # 头部增加节点     def add(self,item):         node=Node(item)         node.next=self.__head         self.__head=node     # 尾部增加节点     def append(self,item):         node=Node(item)         if self.is_empty():             self.__head=node         else:             cur=self.__head             while cur.next is not None:                 cur=cur.next             cur.next=node     # 指定位置插入     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):         cur=self.__head         pre=None         while cur is not None:             if cur.item==item:                 if cur==self.__head:                     self.__head=cur.next                 else:                     pre.next=cur.next                 return             pre=cur             cur=cur.next if __name__ == '__main__':     ll=SingleLinkList()     for i in range(2):         ll.append(i)     print(ll.length())     ll.travel()     ll.insert(5,7)     ll.travel()     ll.remove(4)     ll.travel()

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

你可能感兴趣的文章
OPPO F9配置曝光 配备6.3英寸19.5:9触摸屏
查看>>
使用Vue.Js结合Jquery Ajax加载数据的两种方式
查看>>
优化IIS7.5支持10万个同时请求的配置方法_win服务器
查看>>
mysql中自连接查询的妙用:推荐人统计
查看>>
c语言代码缩进和空白
查看>>
我学安卓——运行时hook之onClickListener
查看>>
ios面试题1
查看>>
Snort***检测系统安装配置
查看>>
Linux优化之IO子系统监控与调优
查看>>
Install Toad for Oracle 10.6 on Winows 7 X64
查看>>
发福利喽!学Spark课程送Spark技术峰会的门票........
查看>>
Ubuntu忘记登录密码的解决办法
查看>>
Oracle数据库培训-PLSQL编程
查看>>
突破虚拟化极限,自由畅翔云端
查看>>
F5和VMware-共同交付软件定义的数据中心
查看>>
Java并发编程的艺术
查看>>
批量分发ssh公钥证书
查看>>
iOS encrypt Md5, Sha1,Base64
查看>>
git 常用命令
查看>>
Android系统启动流程(四)Launcher启动过程与系统启动流程
查看>>