我们可以使用类编写链表吗?不使用结构? [复制]

Posted

技术标签:

【中文标题】我们可以使用类编写链表吗?不使用结构? [复制]【英文标题】:Can we write linked list using class?not using structure? [duplicate] 【发布时间】:2018-07-07 23:47:07 【问题描述】:

我上个月去面试,面试官问了一个有趣的问题:我们可以使用类而不使用结构来编写链表吗? 我说是的,我还写了类似下面的代码。谁能解释一下是对是错?

class list     
public:    
   int a;  
   class *list;
 ;

【问题讨论】:

structclass 没有太大区别。仅默认可见性。 classstruct 之间的唯一区别是,默认访问级别在类中是 private,在结构中是 public struct 和 class 的区别仅在于默认访问说明符。我也会回答“是的,我们可以,但我们不应该在没有充分理由的情况下重新发明***” 您可以使用并行数组,虽然丑陋但可以。我不会接受使用类的答案,类和结构之间没有本质区别。 确实有人建议过,但是是你点击了“yes”并关闭了这个问题。你有买家的悔恨吗? 【参考方案1】:

您可以使用类和结构来编写数据结构,例如链表。 class 和 struct 等术语在 C++ 中表示 same thing。唯一不同的是默认可见性,对于类是private,对于结构是public。话虽如此,您的班级格式不正确,应该是:

class list     
public:    
   int a;  
   list* l; // list* instead of class* here
;

使用关键字struct 时,您可以省略public: 说明符:

struct list 
   int a;  
   list* l;
;

请注意,标准 C++ 库中已经有现成的containers。

【讨论】:

以上是关于我们可以使用类编写链表吗?不使用结构? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

python会自动垃圾收集双向链表吗? [复制]

链表使用类和结构体的区别?

我可以用花括号构造一个链表吗?

区块链是单链表吗?

你知道什么是Python算法和数据结构抽象数据和面向对象数组和列表链表吗?

你知道什么是Python算法和数据结构抽象数据和面向对象数组和列表链表吗?