python单链表的类形式定义

题目:

小王子有一天迷上了排队的游戏,桌子上有标号为 1-10 按顺序摆放的 10 个玩具,现在小王子想将它们按自己的喜好进行摆放。小王子每次从中挑选一个好看的玩具放到所有玩具的最前面。已知他总共挑选了 M 次,每次选取标号为 X 的玩具放到最前面,求摆放完成后的玩具标号。

给出一组输入,M=8 共计排了 8 次,这 8 次的序列为 9,3,2,5,6,8,9,8。 求最终玩具的编号序列。

输入描述

第一行是一个整数 M,表示小王子排玩具的次数。

随后 M行每行包含一个整数 X,表示小王子要把编号为 X 的玩具放在最前面。

输出描述

共 M 行,第 ii行输出小王子第 ii次排完序后玩具的编号序列。

答案(单链表):

import os
import sys


# 请在此输入您的代码
class Node:
    def __init__(self, value, next=None):
        self.value = value
        self.next = next


def creatNode():
    root = Node(0)
    temp = root
    for i in range(1, 12):
        temp.next = Node(i)
        temp = temp.next
    temp.next = None
    return root


def delete(x, root):
    temp = temp1 = root
    while temp != None:
        if temp.value == x:
            temp1.next = temp.next
        temp1 = temp  # 可能错误
        temp = temp.next


def insert(x, root):
    temp = Node(x)
    temp.next = root.next
    root.next = temp


def show(root):
    temp = root.next
    while temp.next != None:
        print(temp.value, end=" ")
        temp = temp.next
    print("")


if __name__ == '__main__':
    m = int(input())
    root = creatNode()
    a = []
    for i in range(m):
        k=int(input())
        a.append(k)
    for i in range(m):
        delete(a[i], root)
        insert(a[i], root)
        show(root)

循环链表逻辑:

循环链表的组成

特点:

  • 首尾相接的链表。
  • 可以从任一节点出发,访问链表中的所有节点。
  • 判断循环链表中尾结点的特点:q->next==first

 双链表逻辑:

由于在双向链表中既有前向链又有后向链,寻找任一个结点的直接前驱结点与直接后继结点变得非常方便。设指针 p 指向双链表中某一结点,则有下式成立:

p-> llink->rlink = p = p->rlink->llink

声明:文章部分内容,参考或者引用蓝桥云课上的文章。链接如下:

蓝桥杯省赛 14 天夺奖冲刺营 - 数据结构基础之链表篇 - 蓝桥云课 (lanqiao.cn)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古剑诛仙

你的鼓励是我创造的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值