在matlab中实现链表

本文介绍了如何在MATLAB中创建和操作双向链表。定义了两个类,dlnode用于表示链表节点,doubleLinkedList用于管理链表。dlnode包含数据、前驱和后继节点,提供了插入、删除和断开连接等方法。doubleLinkedList类包括了增删查改链表节点的功能,如设置位置、插入节点、清空链表、判断链表状态等。
摘要由CSDN通过智能技术生成
这几天我们老师让我们用Matlab做作业,需要实现一个链表。
昨天上google搜“matlab 实现链表”,无果,有意思的还有好多乱七八糟的人说Matlab有C/C++的接口,调用C/C++实现的链表就好了。
又搜"matlab linked list",哗啦哗啦,好多用matlab实现链表的内容,尤其是在Matlab帮助中就有一个例子链表的程序。
于是,我有点小感慨 -- 差距。
本着,分享的原则,我把我用Matlab实现的链表分享出来,这样搜关键词“matlab 实现链表”的时候就能搜到结果了。

================================
用Matlab实现链表,的预备知识是:知道Matlab可以面向对象编程。在Matlab帮助中有详细介绍。

dlnode.m  定义了链表中的节点的类
  1. classdef dlnode < handle
  2. % DLNODE  A class to represent a doubly-linked list node.
  3. % Multiple dlnode objects may be linked together to create linked listes.
  4. % Each node contains a piece of data and provides access to the next
  5. % and previous nodes.
  6.    properties
  7.       Data
  8.    end
  9.    properties(SetAccess = private)
  10.       Next
  11.       Prev
  12.    end
  13.     
  14.    methods
  15.       function node = dlnode(Data)
  16.       % DLNODE  Constructs a dlnode object.
  17.          if nargin > 0
  18.             node.Data = Data;
  19.          end
  20.       end
  21.       
  22.       function insertAfter(newNode, nodeBefore)
  23.       % insertAfter  Inserts newNode after nodeBefore.
  24.          disconnect(newNode);
  25.          newNode.Next = nodeBefore.Next;
  26.          newNode.Prev = nodeBefore;
  27.          if ~isempty(nodeBefore.Next)
  28.             nodeBefore.Next.Prev = newNode;
  29.          end
  30.          nodeBefore.Next = newNode;
  31.       end
  32.       
  33.       function insertBefore(newNode, nodeAfter)
  34.       % insertBefore  Ins
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值