数据结构java实现原理

 链表

节点 Node up; Node down; Object o;

属性Node first; Node last; int size;

方法 add(Object o); remove(int index); get(int index); getNode(int index); isEmpty();

set(int index,Object o);

顺序栈

属性:Object[] data;  top=-1;  max;

方法:init(int max); push(); pop(); peer(); getSize(); isEmpty(); isFull();

队列:

Front->永远指第一个元素

Rear->指最后一个元素的下一个元素

属性:Object[] data; front=0; rear=0; max;

方法:init(int max); isEmpty(); isFull(); rudui(Object o); chudui(); getSize();

循环队列,循环队列必须损失一个空间

入队rear=(rear+1)%max 出队front=(front+1)%max 队满(rear+1)%max==front队空rear==front

树:

二叉树

二叉排序树:(根节点最大,左节点最小,右节点)

节点Node: Node leftChild; Node rightChild(); int value;

属性:Node root;

方法:insert(); clear(); beforeOrder(); inOrder(); afterOrder(); getHeight(); getNodes(); isEmpty();

两个栈实现队列:

Stack1 stack2 两个栈,将stack1用于入栈,stack2用于出栈。

入队操作:往stack1中入栈

出队操作:当stack2不为空,将stack1中元素全部倒入stack2stack2再弹出栈顶元素

两个队列实现栈:

Queue1 Queue2 两个队列

入栈操作:向一个队列中入队

出栈操作:将有数据的一个队列灌入没有数据的另一个队列,只留下一个数据,然后正常执行出队操作来装作出栈。

原文地址:https://www.cnblogs.com/ttaall/p/12001198.html