定义一个链表的小例子

定义一个链表实现英雄的排行榜


class Hero(object):
    def __init__(self, no=None, nickname=None, name=None, pNext = None):
        self.no = no
        self.nickname = nickname
        self.name = name
        self.pNext = pNext

# 添加节点
def addHero(head, pNew):
    cur = head
    # while cur.pNext != None:
    #     cur = cur.pNext
    #
    # cur.pNext = pNew

    while cur.pNext != None:
        if cur.pNext.no > pNew.no:
            # pNew.pNext = cur.pNext
            # cur.pNext = pNew
            break

        cur = cur.pNext
    #思考为什么把这两行代码不放在while里面,而是放在这。
    pNew.pNext = cur.pNext
    cur.pNext = pNew
# 遍历节点
def showHero(head):
    if isEmpty(head):
        return None

    cur = head

    while cur.pNext != None:
        print("英雄的编号是: %s, 外号是:%s, 姓名:%s" % (cur.pNext.no, cur.pNext.nickname, cur.pNext.name))
        cur = cur.pNext

#判断是否为空
def isEmpty(head):
    if head.pNext != None:
        return False
    return True

#删除
def delHero(head, no):
    cur = head

    while cur.pNext != None:
        if no == cur.pNext.no:
            cur.pNext=cur.pNext.pNext
            break
        cur = cur.pNext
    else:
        print('没有找到')

    ### 链表的长度
def getLength(head):
    length = 0
    cur = head
    while cur.pNext != None:
        cur = cur.pNext
        length = length + 1

    return length


# 头结点
head = Hero()

## 首节点
h1 = Hero(1, '及时雨', '宋江')
h2 = Hero(2, '玉麒麟', '卢俊义')
h3 = Hero(6, '豹子头', '林冲')
h4 = Hero(4, '入云龙', '公孙胜')

addHero(head, h1)
addHero(head, h2)
addHero(head, h3)
addHero(head, h4)

showHero(head)
delHero(head,2)
showHero(head)
print(getLength(head))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值