python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
本文实例讲述了python单向链表的基本实现与使用方法。分享给大家供大家参考,具体如下:
#-*-coding:utf-8-*- #!python3 classNode(): def__init__(self,item): #初始化这个节点,值和下一个指向 self.item=item self.next=None classSingleLinklist(): def__init__(self): #初始化这个单链表的头指针为空 self._head=None deflength(self): #获取这个链表的长度 count=0 cur=self._head whilecur!=None: count+=1 cur=cur.next returncount defis_empty(self): """判断是否为空""" returnself._head==None defadd(self,item): """在头部添加元素""" node=Node(item) node.next=self._head self._head=node defappend(self,item): """在尾部添加元素""" cur=self._head node=Node(item) whilecur!=None: cur=cur.next cur.next=node definsert(self,pos,item): """在选定的位置添加元素""" cur=self._head node=Node(item) count=0 ifpos<=0: self.add(item) elifpos>(self.length()-1): self.append(item) else: whilecount<(pos-1): count+=1 cur=cur.next node.next=cur.next cur.next=node deftravel(self): """遍历整个链表""" cur=self._head whilecur!=None: print(cur.item,end="") cur=cur.next print("") defremove(self,item): """删除链表""" cur=self._head pre=None whilecur!=None: ifcur.item==item: ifnotpre: self._head=cur.next break else: pre.next=cur.next else: pre=cur# cur=cur.next defsearch(self,item): """查找某个节点""" cur=self._head whilecur!=None: ifcur.item==item: print("找到这个元素了") returnTrue cur=cur.next print("抱歉没有这个元素") returnFalse singlistdemo=SingleLinklist() singlistdemo.add(1) singlistdemo.add(2) singlistdemo.add(65) singlistdemo.insert(2,77) singlistdemo.insert(1,66) singlistdemo.insert(0,66) print(singlistdemo.length()) singlistdemo.travel() singlistdemo.remove(1) singlistdemo.travel() singlistdemo.search(65)
运行结果:
6
6665662771
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。