我正在学习 TAD 但是,我不太了解语法,这就是为什么我很难创建单个列表,但我理解它是如何工作的,例如 TAD,请有人能告诉我如何实现这一点TAD(链表),带有基本说明和描述
abstract type AbstractList{T} end
abstract type AbstractNode{T} end
mutable struct Nodo{T} <: AbstractNode{T}
value ::T
next ::Nodo{T}
Nodo{T}() where T =(x=new();x;x.next=x)
Nodo{T}(v,n) where T =new(v,n)
end
mutable struct LList{T} <: AbstractList{T}
first ::Nodo{T}
LList{T}() where T =new(Nodo{T}())
end
Lista=LList;
function Append(lista,value)
current=Nodo(value,new(Nodo()))
if Lista.size==0
lista.head=current
else
MyNode=Lista.first;
while MyNode.next!=nothing
MyNode=MyNode.next;
MyNode.next=current;
end
end
Lista.size+=1
end
Append(Lista,2)
Run Code Online (Sandbox Code Playgroud)
我正在尝试这个,但我不知道为什么它不起作用,我很困惑,因为我阅读了很多关于我使用的说明的帖子,但我根本不理解Nodo{T}() where T =(x=new();x;x.next=x)这个说明,我需要帮助。
julia ×1