2017-03-06 88 views
0

我很确定有一些愚蠢的错误,但我一直无法弄清楚。 我希望实现一个链表。当我必须推新节点时,我有一个实现节点的类,它用于linkedList的一个函数中。下面是代码(避免故障压痕)Python:使用multipel类实现Linkedlist

class LinkedList(): 

def __init__(self, head=None): 
    self.head = head 

def insert(self, data): 
    new_node = Node(data) 
    new_node.set_next(self.head) 
    self.head = new_node 



class Node(): 
    def __init__(self, data=None, next_node=None): 
    self.data = data 
    self.next_node = next_node 

def get_data(self): 
    return self.data 

def get_next(self): 
    return self.next_node 

def set_next(self, new_next): 
    self.next_node = new_next 

但在试图让PyCharm这个控制台LinkedList的实例就是我得到

import linkedList 
a=LinkedList() 
Traceback (most recent call last): 
File "/usr/lib/python3.5/code.py", line 91, in runcode 
exec(code, self.locals) 
File "<input>", line 1, in <module> 
NameError: name 'LinkedList' is not defined 

任何想法,我可能会搞砸了?

回答

0

通过执行import linkedList您导入模块,我猜包含您在问题中发布的代码。您将需要使用linkedList命名空间来访问模块内容。

因此a=LinkedList()将不起作用,但a=linkedList.LinkedList()应该工作。

如果你想从你的模块添加LinkedList定义当前的全局命名空间,你也可以做到以下几点:

from linkedList import LinkedList 
a = LinkedList() 

看到https://docs.python.org/3/tutorial/modules.html