Matlab - Stack Data Structure

后端 未结 5 1910
悲哀的现实
悲哀的现实 2021-02-07 22:39

Can I have a stack data structure in matlab?

For example a stack of integers where I can push elements in it like stack.push(i), get elements out of it like

相关标签:
5条回答
  • 2021-02-07 23:15

    There is a useful submission in FileExchange:

    • list, queue, stack
    0 讨论(0)
  • 2021-02-07 23:32

    I do not think MATLAB has one even in the newer versions. But you can use Java, it is a "first class citizen" in MATLAB, it would work perfectly with integers as you need it. See also queue and linked-list related questions.

    Just write in MATLAB stack=java.util.Stack() and then you can call methods on it as in your question stack.push(i), ecc.

    0 讨论(0)
  • 2021-02-07 23:32

    You can roll your own or you can use someone else's, like this.

    A very simple homemade stack would be an array with a count, the count pointing to the topmost item.

    0 讨论(0)
  • 2021-02-07 23:38

    Please use MATLAB arrays as is. They are 100 times faster than using any java util. Write the extra logic to make the array work like a stack.

    From personal experience just try to re-write your algorithm to use MATLAB array.

    0 讨论(0)
  • 2021-02-07 23:41

    I have used the Java one in MATLAB and honestly it is very slow. It's much better to do what @skurmedel said, like so:

    Ptr = 1;
    Stack(ptr,:) = [x,y];
    Ptr = ptr + 1;
    

    And to simulate pop:

    A = stack(ptr,1);
    B = stack(ptr,2);
    Ptr = ptr - 1;
    
    0 讨论(0)
提交回复
热议问题