数据结构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中元素全部倒入stack2,stack2再弹出栈顶元素
两个队列实现栈:
Queue1 Queue2 两个队列
入栈操作:向一个队列中入队
出栈操作:将有数据的一个队列灌入没有数据的另一个队列,只留下一个数据,然后正常执行出队操作来装作出栈。