首先数据结构分为线性数据结构和非线性数据结构。
栈:Stack是要实现先进后出,后进先出的逻辑结构。
boolean empty()
//测试此堆栈是否为空。
E peek()
//查看此堆栈顶部的对象,而不从堆栈中删除它。
E pop()
//删除此堆栈顶部的对象,并将该对象作为此函数的值返回。
E push(E item)
//将项目推送到此堆栈的顶部。
int search(Object o)
//返回一个对象在此堆栈上的基于1的位置。
队列:Queue是一种特殊的线性数据结构,队列只能允许在队头,队尾进行添加和查询等相关操作。
boolean add(E e)
//将指定元素插入到队列中
E element()
//检索但不删除这个队列的头。
boolean offer(E e)
//如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中。
E peek()
//检索但不删除此队列的头,如果此队列为空,则返回 null 。
E poll()
//检索并删除此队列的头,如果此队列为空,则返回 null 。
E remove()
//检索并删除此队列的头。
相对于此类更多的运用的是双端队列(Deque),具有更强的灵活性,扩展了Queue类,同样可以使用于栈结构的使用,不同于单调的队列,栈(Stack)是先进后出
在Deque中可以对第一个和最后一个数据进行操作
树:树是一种典型的非线性结构,它是由 n(n>0)个有限节点组成的一个具有层次关系的集合。之所以叫“树”,是因为这种数据结构看起来就像是一个倒挂的树,只不过根在上,叶在下。树形数据结构有以下这些特点:
1.每个节点都只有有限个子节点或无子节点;
2.没有父节点的节点称为根节点;
3.每一个非根节点有且只有一个父节点;
4.除了根节点外,每个子节点可以分为多个不相交的子树。

class Tree{
//二叉树
private Tree rNode;
//右节点
private Tree lNode;
//左节点
private Object data;
//节点数据
}
堆:一种特殊的树结构堆,是一棵完全二叉树,也就是一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同
class MyTree {
private MyTree rNode;
private MyTree lNode;
private Integer data;
public MyTree(Integer data){
this.data=data;
}
public void add(MyTree node){
if (node==null){
return;
}
if (node.data< this.data){
if (this.lNode==null){
this.lNode=node;
}else {
this.lNode.add(node);
}
}else {
if (this.rNode==null){
this.rNode=node;
}else {
this.rNode.add(node);
}
}
}
}

1459

被折叠的 条评论
为什么被折叠?



