本人是一个菜鸟,希望通过写写博客的方式来记录我在学习上遇到的一些困难,并以此来督促自己投入到学习中来。
之几天一直在研究栈和队列,在写用链表实现队列的时候要频繁的使用入队操作,我发现我并不会在尾结点出设置尾结点域,所以就回过头来看了看单链表的变形。
在尾结点处设置尾结点域需要设置两个变量,一个是头结点另一个当然就是尾结点,在写程序的过程中需要不断的维护这两个变量,其实设置尾结点域并不是特别难只需要在单链表的基础上进行一些变动就可以完成。
以下是我写的代码:
# author HeiJack
# Time 2021-6-28
'''设置尾结点的单链表是在原先单链表的基础上进行的改进升级,这种方式主要是为了在处理
需要在链表尾部进行多次操作的情况下,就比如后面的用链表实现队列就需要多次的尾部操作,
提升了程序操作的效率'''
'''和之前单链表有些不同 ,由于需头结点始终指向尾结点所以在写程序的时候需要时刻注意到
这个地方'''
# 带尾结点域的单链表
class LNode:
def __init__(self, elem):
self.elem = elem
self.next = None
class SLList:
def __init__(self):
self.head = None
self.rear = None
# 添加头结点
def prepend(self, elem):
if self.head is None: # 空表
self.head = LNode(ele