最近用matlab仿真路由方面的东西,用到了链表和树。这两个结构用指针实现是非常方便的,matlab中也有指针函数,但其作用是实现与C语言的转化。强行用结构体实现了链表,发现采用指针方式的读取非常不方便。
挣扎一段时间之后,我思考的一个问题是,用指针式的链表和树有必要吗?
C语言中数组需要提前分配内存,而链表的好处在于灵活。但在matlab中,数组本身就是灵活的,比如随时都可以用a(3),a(100)、a=[a,
5]这种方式代替链表的插入,matlab顶多出现一个警告,删除也可以用a(1)=[]。链表中需要定义节点的next,matlab中的灵活索引完全可以取代。
另外就是树,由一个节点指向多个节点的方式,头一个想到的还是结构体。但是由于链表的惨痛经历,这一点也很快遭到质疑。用二维cell完全可以实现,具体的还没做出来,但是一想到这个想法就豁然开朗了。在没有指针的matlab下创造指针真特么头疼。
哦,不对,matlab有指针,数组、cell,它们其实就是指针。不过matlab的cell和矩阵真的是很灵活,不妨一试。