python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019-11-04 18:06
2086 查看
本文实例讲述了python单向链表的基本实现与使用方法。分享给大家供大家参考,具体如下:
# -*- coding:utf-8 -*- #! python3 class Node(): def __init__(self,item): #初始化这个节点,值和下一个指向 self.item = item self.next = None class SingleLinklist(): def __init__(self): #初始化这个单链表的头指针为空 self._head = None def length(self): #获取这个链表的长度 count = 0 cur = self._head while cur != None: count+=1 cur = cur.next return count def is_empty(self): """判断是否为空""" return self._head == None def add(self,item): """在头部添加元素""" node = Node(item) node.next = self._head self._head = node def append(self,item): """在尾部添加元素""" cur = self._head node = Node(item) while cur != None: cur = cur.next cur.next = node def insert(self,pos,item): """在选定的位置添加元素""" cur = self._head node = Node(item) count = 0 if pos <= 0: self.add(item) elif pos > (self.length()-1): self.append(item) else: while count < (pos -1): count+=1 cur = cur.next node.next = cur.next cur.next = node def travel(self): """遍历整个链表""" cur = self._head while cur != None: print(cur.item,end=" ") cur = cur.next print(" ") def remove(self,item): """删除链表""" cur = self._head pre =None while cur != None: if cur.item == item: if not pre: self._head = cur.next break else: pre.next = cur.next else: pre = cur # cur = cur.next def search(self,item): """查找某个节点""" cur = self._head while cur != None: if cur.item == item: print("找到这个元素了") return True cur = cur.next print("抱歉没有这个元素") return False 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
66 65 66 2 77 1
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- 两种方法实现单向链表的创建、遍历、删除、查找、逆序输出(循环法和递归法)
- 基于Python单向链表实现尾部、任意位置添加,删除
- 基于Python单向循环链表实现尾部、任意位置添加,删除
- [算法]Java 实现 简单MyNode类型 无序链表 递归 添加 删除 遍历
- ANT使用 - 用for和foreach的方法遍历一个文件夹,查找到某个文件并删除
- [置顶] C++全排列:一种新的全排列方法(使用单向链表实现)
- 树的基本结构,以及利用链表实现树的各项操作(创建、添加/删除/打印树节点、销毁等等)
- ADO.NET使用带参数方法实现添加、删除和修改数据
- [置顶] C++全排列:一种新的全排列方法(使用单向链表实现)
- javascript实现二叉树的创建,遍历,添加,查找最大值最小值和指定值的寻找及删除功能——递归的多次运用
- UITableView 系列一 :基本使用方法 (显示,删除,添加图片,添加样式等) (实例)
- 单向链表的相关操作总结:创建、删除、查找、排序、统计链表大小、链表的反转和遍历等
- 单向循环链表创建、遍历、插入、删除、查找(按位置,按元素值)、清空、销毁
- 《Delphi 算法与数据结构》学习与感悟[8]: 单向链表的添加、删除与遍历
- 2.实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联
- Python实现设计一个密码记录及查询小软件,模拟记录自己在各个网站上所使用的帐号及密码,并实现浏览、查询、增加、删除、修改等基本功能。
- python实现单链表中删除倒数第K个节点的方法
- 关于链表结构的基本操作 c 实现 (创建,插入删除,反转,合并链表,查找,是否有环,链表相交情况)
- C实现简单单向链表,一次遍历查找倒数第k个节点的值
- 单链表很类似于栈,先插入的后遍历,删除也是删除最后插进来的。但增加的指定查找和指定删除的方法增加了灵活性,可以删除、查找指定key