import sys
class employee:
def init(self):
self.num = 0
self.math = 0
self.Eng = 0
self.name = ''
self.next = None
def findnode(head, num):
ptr = head
while ptr != None:
if ptr.num == num:
return ptr
ptr = ptr.next
return ptr
def insertnode(head, ptr, num, math,Eng, name):
InsertNode = employee()
if not InsertNode:
return None
InsertNode.num = num
InsertNode.math = math
InsertNode.Eng = Eng
InsertNode.name = name
InsertNode.next = None
if ptr == None:
InsertNode.next = head
return InsertNode
else:
if ptr.next == None:
ptr.next = InsertNode
else:
InsertNode.next = ptr.next
ptr.next = InsertNode
return head
position = 0
data = [[1001, 92,98], [1002, 85,95], [1003, 93,89], [1007, 89,88],
[1012, 97,95], [1014, 87,96], [1018, 86,88], [1043, 95,90],
[1031, 86,94], [1037, 87,86], [1041, 88,96], [1046, 88,95]]
namedata = ['Allen', 'Scott', 'Marry', 'John', 'Mark', 'Ricky',
'Lisa', 'Jasica', 'Hanson', 'Amy', 'Bob', 'Jack']
print('学号 数学成绩 英语成绩 学号 数学成绩 英语成绩 学号 数学成绩 英语成绩 学号 数学成绩 英语成绩')
print('-------------------------------------------------------')
for i in range(3):
for j in range(4):
print('[%4d] %2d' % (data[j * 3 + i][0], data[j * 3 + i][1]), end='')
print()
print('------------------------------------------------------\n')
head = employee()
head.next = None
if not head:
print('Error!! 内存分配失败!!\n')
sys.exit(1)
head.num = data[0][0]
head.name = namedata[0]
head.math = data[0][1]
head.Eng = data[0][2]
head.next = None
ptr = head
for i in range(1, 12):
newnode = employee()
newnode.next = None
newnode.num = data[i][0]
newnode.name = namedata[i]
newnode.math = data[i][1]
newnode.Eng = data[i][2]
newnode.next = None
ptr.next = newnode
ptr = ptr.next
while (True):
print('请输入要插入其后的学号,如输入的编号不在此链表中,')
position = int(in put('新输入的学号节点将视为此链表的链表头部,要结束插入过程,请输入-1:'))
if position == -1:
break
else:
ptr = findnode(head, position)
new_num = int(input('请输入新插入的学号:'))
new_math = int(input('请输入新插入的学号的数学成绩:'))
new_Eng = int(input('请输入新插入的学号的英语成绩:'))
new_name = input('请输入新插入的学生姓名: ')
head = insertnode(head, ptr, new_num, new_math, new_Eng, new_name)
print()
ptr = head
print('\t学号 姓名\t数学成绩t英语成绩')
print('\t==============================')
while ptr != None:
print('\t[%2d]\t[ %-7s]\t[%2d]\t[%2d]' % (ptr.num, ptr.name, ptr.math,ptr.Eng))
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。