Python数据结构与算法:第3-4课时:单链表及结点的实现定义代码
单向链表
链表的结构。
节点的程序实现
class SingleNode(object):
"""单链表的结点"""
def __init__(self,item):
# _item存放数据元素
self.item = item
# _next是下一个节点的标识
self.next = None
一个节点的初始状态不知道指向哪里,所以传递一个空对象。
等下一个节点定义好后,再赋予。
节点类创建OK后,再创建一个单链表类:
单链表的实现
• is_empty() 链表是否为空
• length() 链表长度
• travel() 遍历整个链表
• add(item) 链表头部添加元素
• append(item) 链表尾部添加元素
• insert(pos, item) 指定位置添加元素
• remove(item) 删除节点
• search(item) 查找节点是否存在
一上这些操作是都要能实现的。
程序实现:
class SingleLinkList(object):
"""单链表"""
def __init__(self, node = None):
self._head = None
def is_empty(self):
pass
def travel(self):
pass
……….
定义了一些对象方法,
self._head 为单链列表的头节点(首节点)的位置,
前面加一个_表示是私有对象属性,只用于内部函数方法。
老师改写的方法:
class SingleNode(object):
"""单链表的结点"""
def __init__(self,item):
# _item存放数据元素
self.item = item
# _next是下一个节点的标识
self.next = None
class SingleLinkList(object):
def __init__(self,node = None):
self._head = node
node1 = SingleNode(100)
list = SingleLinkList (node1)
给单链列表list头对象传输的头节点为 node1的地址。
如果没有头节点传入那么默认为空对象