【发布时间】:2019-08-25 20:17:09
【问题描述】:
我必须根据二叉树结构创建一个包含 6 个名称的来宾列表。 该列表需要按字母顺序排列,然后按名称以字母 A-L 和 M-Z 开头的名称排序为 2 个列表。 但是,当我运行此代码时,它只会按照每个类别下的输入顺序仅打印列表中的 5 个元素。 任何帮助将不胜感激。我是编程、Python 和 stackoverflow 的新手,并且已经被分配了这门课程,并且花了一个多星期的时间查看不同的材料,但我只是卡住了。谢谢。
IDLE Python 3.6,我想我需要使用某种排序方法,或者我的 enterguest 循环可能有错误或缺少组件
class Node(object):
def __ init __(self):
self.left = None
self.right = None
self.data = list()
def enterguest(root, guest):
if guest < root.data[0]:
if root.left == None:
root.left = Node()
root.left.data.append(guest)
else:
enterguest(root.left, guest)
else:
if guest > root.data[0]:
if root.right == None:
root.right = Node()
root.right.data.append(guest)
else:
enterguest(root.right, guest)
else:
root.data.append(guest)
def guestresults(root):
if root == None:
return
print(root.data)
guestresults(root.left)
guestresults(root.right)
root = Node()
root.data.append("M")
for i in range (0, 6):
enterguest(root, input("Enter guest name:"))
print("Guests A-L")
guestresults(root.left)
print("Guests M-Z")
guestresults(root.right)
我希望输出是按字母顺序排列的 6 个名称,并根据每个名称的第一个字母分成两个列表,一个列表是名称 A-L,第二个列表是名称 M-Z。实际输出是按照我创建的每个类别下的输入顺序显示相同的 5 个名称。
【问题讨论】:
标签: python list sorting binary alphabetical