From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Community Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

使用LvClass实现的双向链表

这个项目中包含了一个使用XLClass制作的双向环型链表,以及它的演示程序。

链表的相关操作全部封装在类“DoubleLinkedList.lvclass”中。这些方法包括:

Append: 在当前迭代器所指向的节点的后方插入一个新的节点,并将迭代器指向新的节点。

Erase: 把当前迭代器指向的节点删除,并将迭代器指向下一个节点。

GetAllNodes: 列出链表中所有的节点。

Enumerator Reset: 把迭代器指向链表首节点。

Enumerator go Next: 迭代器向后移动一个节点。

Enumerator go Previous: 迭代器向前移动一个节点。

Enumerator Current Node: 返回当前迭代器所指向的节点。

在程序中使用这个链表的时候,需要自己定义链表节点的数据类型。如果用户数据已经是lvclass类型,可以把它存储在链表节点ListNode的data变量中。如“Demo - Object Data.vi”所示。

也可以创建一个新的继承于ListNode的类,用于保存用户数据。如“Demo - Custome Node.vi”所示。

这个链表的工作原理可以参考文章:LabVIEW中实现链表、树等数据结构

Contributors