我试图从2小时内整理程序,但是每次遇到相同的错误时,我都会尝试。
我正在Stack, Queue and Linked List
使用python编写程序。
请帮助我,我的代码在这里出什么问题了?
import random
class Node(object):
def __init__(self, other=None):
self.other = other
self.next = next
self.previous = previous
def __str__(self):
return str(self.other)
class List(object):
def __init__(self):
self.head = None
self.tail = None
def append(self, value):
newNode = Node(value)
if self.head == None:
self.head = newNode
self.tail = newNode
else:
self.tail.next = newNode
newNode.previous = self.tail
self.tail = newNode
def __str__(self):
someString = ""
current = self.head
while current != None:
someString = someString + current.other
current = current.next
return someString
class Queue(List):
def enqueue(self, value):
self.append(value)
def dequeue(self):
self.temp = self.head
self.head = self.head.next
return temp
class Stack(List):
def push(self, value):
self.append(value)
def pop(self):
self.temp = self.tail
self.tail = self.tail.previous
return self.temp
def main():
list1 = List()
for i in range(0, 100):
list1.append(str(random.randrange(0, 100)))
print(list1)
queue = Queue()
for i in range(0, 100):
queue.enqueue(str(random.randrange(0, 100)))
for i in range(0, 100):
print(queue.dequeue)
for i in range(0, 10):
print("----------------------------------------")
stack = Stack()
for i in range(0, 100):
stack.push(str(random.randrange(0, 100)))
for i in range(0, 100):
print(stack.pop())
if __name__ == "__main__":
main()
这是我的输出的屏幕截图:
帮助将不胜感激!
这是我的建议。输出似乎很好。
import random
class Node(object):
def __init__(self, other=None):
self.other = other
self.next = None # next -> None
self.previous = None # previous -> None
def __str__(self):
return str(self.other)
class List(object):
def __init__(self):
self.head = None
self.tail = None
def append(self, value):
newNode = Node(value)
if self.head == None:
self.head = newNode
self.tail = newNode
else:
self.tail.next = newNode
newNode.previous = self.tail
self.tail = newNode
def __str__(self):
someString = ""
current = self.head
while current != None:
someString = someString + current.other
current = current.next
return someString # declease indent (get it out of the while loop)
class Queue(List):
def enqueue(self, value):
self.append(value)
def dequeue(self):
self.temp = self.head
self.head = self.head.next
if self.head is None: # add
self.tail = None # add
else: # add
self.head.previous = None # add (cut the link to the dequeued node)
return self.temp # temp -> self.temp
class Stack(List):
def push(self, value):
self.append(value)
def pop(self):
self.temp = self.tail
self.tail = self.tail.previous
if self.tail is None: # add
self.head = None # add
else: # add
self.tail.next = None # add (cut the link to the popped node)
return self.temp
def main():
list1 = List()
for i in range(0, 100):
list1.append(str(random.randrange(0, 100)))
print(list1)
queue = Queue()
for i in range(0, 100):
queue.enqueue(str(random.randrange(0, 100)))
for i in range(0, 100):
print(queue.dequeue()) # dequeue -> dequeue()
# I have no idea why this for is here.
# for i in range(0, 10):
print("----------------------------------------") # adjust indent
stack = Stack() # adjust indent
for i in range(0, 100):
stack.push(str(random.randrange(0, 100)))
for i in range(0, 100):
print(stack.pop())
if __name__ == "__main__":
main()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句