数据结构之链表(python实现)

#-*- coding : utf-8 -*-
"""
create on 2020/8/20 20:17
filename:lianbiao.py
"""
#以单链表为例
#创建链表
#定义节点
class Node:
    def __init__(self,data = None, next = None):
        self.data = data
        self.next = next
#单个创建节点
node1=Node(1)
node2=Node(2)
node3=Node(3)

node1.next=node2
node2.next=node3
print(node1.data)
#循环创建链表
head=None
for count in range(1,6):
    head = Node(count, head)
while head != None:
    print(head.data)
    head = head.next
#遍历链表
probe = head
while probe != None:
    probe = probe.next
#查找某个元素
probe = head
item=4
while(probe!=None&item != probe.data):
    probe = probe.next
if probe != None:
    print("found")
else:
    print("not found")
#访问某个元素
index=2
probe=head
while(index > 0):
    probe = probe.next
    index -= 1
print(probe.data)
#替换某个元素
probe=head
item=3
newitem=30
while(probe!=None&item!=probe.data):
    probe=probe.next
if(probe!=None):
    probe.data=newitem
else:
    print("not found")

#开始处插入
head=Node(newitem,head)
#中间位置插入
if head is None or index <=0:
    head =Node(newitem, head)
else:
    probe = head
    while index > 1 and probe.next != None:
        probe = probe.next
        index -= 1
    probe.next = Node(newitem, probe.next)
#末尾插入
nNode=Node(newitem)
if(head is None):
    head=newitem
else:
    probe=head
    while(probe.next!=None):
        probe=probe.next
    probe.next=nNode

#开始处删除
head=head.next
#中间删除
if index <= 0 or head.next is None:
    head = head.next
else:
    probe = head
    while index > 1 and probe.next.next != None:
        probe = probe.next
        index -= 1
    probe.next = probe.next.next
#末尾删除
if(head.next is None):
    head=None
else:
    probe=head
    while(probe.next!=None):
        probe=probe.next
    probe.next=None
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值