用Python学习数据结构2--链表
来源:互联网 发布:人工智能电影我看哭了 编辑:程序博客网 时间:2024/06/03 17:21
一、链表简介
- 链表是一组数据项的集合,其中每个数据项都是一个节点的一部分,每个节点还包含指向下一个节点的链接
2.根据结构的不同,链表可分为单项链表,单项循环链表,双向链表,双向循环链表等。
单项链表和单项循环链表结构如图所示:
二、单项循环列表操作
三、Python实现单向循环列表
Python中采用“引用+类”来实现链表,Node类代表链表中的一个节点
# -*- coding: utf-8 -*-"""Spyder EditorThis is a temporary script file."""class Node: #初始化结点 def __init__(self,initdata): self.__data=initdata self.__next=None #获取结点数值 def getData(self): return self.__data #获取结点指针域 def getNext(self): return self.__next #设置结点取值 def setData(self,newdata): self.__data=newdata #设置结点指针域 def setNext(self,newnext): self.__next=newnextclass SinCyLinkedList: #初始化链表为空 def __init__(self): self.head=Node(None) self.head.setNext(self.head) #增加第一个结点 def add(self,item): temp=Node(item) temp.setNext(self.head.getNext()) self.head.setNext(temp) #删除指定结点 def remove(self,item): prev=self.head while prev.getNext()!=self.head: cur=prev.getNext() if cur.getData()==item: prev.setNext(cur.getNext()) prev=prev.getNext() #搜索结点是否存在于链表中 def search(self,item): cur=self.head.getNext() while cur!=self.head: if cur.getData()==item: return True cur=cur.getNext() return False #判断链表是否为空 def empty(self): return self.head.getNext()==self.head #求链表的大小 def size(self): count=0 cur=self.head.getNext() while cur!=self.head: count+=1 cur=cur.getNext() return countif __name__=='__main__': s=SinCyLinkedList() print('s.empty()==%s,s.size()==%s' % (s.empty(),s.size())) s.add(19) s.add(86) print('s.empty()==%s,s.size()==%s' % (s.empty(),s.size())) print('86 is%s in s' % ('' if s.search(86) else 'not')) print('4 is%s in s' % ('' if s.search(4) else 'not')) s.remove(19) print('s.empty()==%s,s.size()==%s' % (s.empty(),s.size()))
运行结果如下:
本文参考自:http://www.cnblogs.com/russellluo/p/3285045.html
0 0
- 用Python学习数据结构2--链表
- python学习笔记2:数据结构
- python数据结构学习笔记-4-链表
- 用Python学习数据结构3--堆栈
- 用Python学习数据结构1--队列
- 用python学习数据结构与算法-堆栈
- python数据结构学习笔记-2-算法
- Python学习--数据结构
- python学习数据结构
- 学习python(二) 数据结构
- python学习笔记-数据结构
- python学习总结之数据结构
- python学习---数据结构(一)
- Python和数据结构学习 --- 3
- 学习笔记-Python主要数据结构
- python语法学习之数据结构
- python数据结构学习笔记-1
- Python学习总结(4)-数据结构
- Android Local语言设置
- 一步一步理解GB、GBDT、xgboost
- PDF时间戳数字签名
- clob字段使用,程序直接卡住,不报错也不返回值
- java调用webAPI(C#)的实例
- 用Python学习数据结构2--链表
- ubtunu 切换python的默认版本
- React官方文档--Lists and Keys
- 深度图像与点云区别
- 二维数组 作为函数参数
- React官方文档--Forms
- A Beginner's Guide To Understanding Convolutional Neural Networks Part 2
- 两种方法安装TestNG Eclipse插件
- [kuangbin带你飞]专题十二 基础DP1 S POJ 3666