Pytorch 莱斯分布 junit server wso2 vue状态管理 vue修改样式 ai视频教程下载 oracle分页关键字 mysql操作日志 excel动态图表制作 idea导入多个项目 maven配置eclipse ssr链接解析 数据库查询 python基础教程 python下载安装教程 python中的map函数 java案例 javafinally java的数据类型 java获取月份 java环境变量配置 java得到当前时间 java接口实例 嵌入式linux驱动程序设计从入门到精通 js删除节点 rar去广告 c语言程序100例 php购物车 美国地址生成器 idataparameter sim卡注册失败 脚本错误怎么解决 pdf安装包官方下载 不屑表情包 羽毛球拍握法 python数组赋值 pr抖动特效 dos系统下载
当前位置: 首页 > 学习教程  > 编程语言

Python链表的基本操作

2020/7/24 9:07:27 文章标签:

链表的基本操作

"""
初始化链表
"""
import time

class Node:
    def __init__(self,value):
        self.value = value
        self.next = None

class SingleLinkList:
    def __init__(self):
        self.head = None

    def is_empty(self):
        """判断是否为空"""
        return self.head == None

    def travel(self):
        """遍历链表"""
        cur = self.head
        while cur is not None:
            print(cur.value,end=" ")
            cur = cur.next

    def append(self,item):
        """在末尾添加节点"""

        node = Node(item)
        # 如果是空链表
        if self.is_empty():
            self.head = node
            return
        # 当不为空的时候
        cur = self.head
        while cur.next:
            cur = cur.next
        cur.next = node
        # node.next = None

    def insert(self,index,item):
        """插入中间节点"""
        if (self.head is None) and (self.head.next is None):
            return
        cur = self.head
        while cur is not None and index > 1:
            index = index - 1
            cur = cur.next
        node = Node(item)
        node.next = cur.next
        cur.next = node

    def add(self,item):
        """在头部添加节点"""
        node = Node(item)
        node.next = self.head
        self.head = node

    def length(self):
        """获取链表的长度"""
        cur = self.head
        count = 0
        while cur is not None:
            count += 1
            cur = cur.next
        return count

    def search(self,item):
        # 查看item在链表中是否存在
        cur = self.head
        while cur != None:
            if cur.value == item:
                return True
            else:
                cur = cur.next
        return False

    def pop_last(self):
        """弹出链表的最后一个元素"""
        if self.head is None:
            return
        cur = self.head
        if cur.next is None:
            self.head = None
            return
        while cur.next.next is not None:
            cur = cur.next
        cur.next = None

    def pop_head(self):
        """把链表的第一个元素弹出"""
        if self.head is None:
            return
        self.head = self.head.next

    def cycle(self):
        """循环输出链表"""
        cur = self.head
        if cur.next == None:
            cur.next = self.head
        while cur.next != None:
            self.travel()
            time.sleep(3)





if __name__ == '__main__':
    s = SingleLinkList()
    s.append(100)
    s.append(300)
    s.append(600)
    s.add(500)
    s.add(150)
    head = Node(30)
    head.next = Node(40)
    head.next.next = Node(50)
    s.pop_head()
    s.pop_last()
    s.cycle()
    s.travel()


本文链接: http://www.dtmao.cc/news_show_50003.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?