您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法(python)单向链表的反转

2019-05-31 22:58 190 查看

import sys
class employee:
    def __init__(self):
        self.num=0
        self.salary=0
        self.name=''
        self.next=None
findword=0
data=[[1001,32367],[1002,24388],[1003,27556],[1007,31299],
     [1012,42660],[1014,25675],[1018,44145],[1043,52182],
     [1031,32769],[1037,21100],[1041,32196],[1046,25776]]
namenode=['Allen','Scott','Marry','John','Mark','Ricky','Lisa','Jasica','Hanson','Amy','Bob','Jack']

head=employee()
if not head:
    print('Error!! 内存分配失败!!')
    sys.exit(0)
head.num=data[0][0]
head.salary=data[0][1]
head.name=namenode[0]
head.next=None
ptr=head
for i in range(1,12):
    newnode=employee()
    newnode.num=data[i][0]
    newnode.salary=data[i][1]
    newnode.name=namenode[i]
    newnode.next=None
    ptr.next=newnode
    ptr=ptr.next
ptr=head
i=0
print('翻转前的员工数据')
while ptr!=None:
    print('[%2d,%6s,%3d]'%(ptr.num,ptr.name,ptr.salary))
    i=i+1
    if i>=3:
        print()
        i=0
    ptr=ptr.next
ptr=head
before=None
print('\n 反转后的链表节点数据')
while ptr!=None:
    last=before
    before=ptr
    ptr=ptr.next
    before.next=last
ptr=before
while ptr!=None:
    print('[%2d,%6s,%3d]'%(ptr.num,ptr.name,ptr.salary))
    i=i+1
    if i>=3:
        print()
        i=0
    ptr=ptr.next

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: