题目如下:
pyhton实现:
class StudentNode:
def __init__(self,name,sex):
self.name = name
self.sex = sex
self.next = None
class SLL:
def __init__(self):
self.head = StudentNode(None,None)
'''创建单链表(包含全部信息)'''
def CreateStudentSLL(self):
print("请输入数据按回车键确定,按“#”结束")
Element = input("请输入姓名和性别(以空格隔开):")
cNode = self.head
while Element != "#":
Name = Element.split(" ")[0]
Sex = Element.split(" ")[1]
nNode = StudentNode(Name,Sex)
cNode.next = nNode
cNode = cNode.next
Element = input("请输入姓名和性别(以空格隔开):")
'''拆分单链表(拆分为两个小分队)'''
def DivideSLL(self,LinkedListB,LinkedListC):
aNode = self.head
bNode = LinkedListB.head
cNode = LinkedListC.head
pos = 0
while aNode.next != None:
aNode = aNode.next
pos = pos+1
if pos % 2 == 1:
bNode.next = aNode
bNode = bNode.next
else:
cNode.next = aNode
cNode= cNode.next
bNode.next = None
cNode.next = None
'''遍历单链表'''
def TravereSLL(self):
cNode = self.head.next
while cNode.next != None:
print(cNode.name,"->",end = " ")
cNode = cNode.next
print(cNode.name)
'''获取链表长度'''
def Getlength(self):
cNode = self.head
length = 0
while cNode.next != None:
length+=1
cNode = cNode.next
return length
'''打印结果'''
def PrintSLL(self):
cNode = self.head.next
if cNode.sex == "男":
print("男生小分队包含",self.Getlength(),"个人,分别是:")
self.TravereSLL()
else:
print("女生小分队包含",self.Getlength(),"个人,分别是:")
self.TravereSLL()
if __name__ == "__main__":
LA = SLL()
LB = SLL()
LC = SLL()
LA. CreateStudentSLL()
LA.DivideSLL(LB,LC)
LB.PrintSLL()
LC.PrintSLL()
结果如下: