数据结构学习——java语言描述
a382486075
论智硬的菜鸡成长之路
展开
-
链栈
public class LinkStack implements IStack{ private Node top; public void clear(){ top = null; } //判断是否为空 public boolean isEmpty(){ return top == null; } //求链栈的长度 public int length(){转载 2015-06-07 16:54:10 · 376 阅读 · 0 评论 -
二叉树
import StackAndQueue.LinkQueue; import StackAndQueue.LinkStack; public class BiTree { private BiTreeNode root; //树的根节点 public BiTree(){ this.root = null; //空树 } public BiTree(BiTreeNode root转载 2015-06-10 00:57:31 · 318 阅读 · 0 评论 -
二叉树结点
public class BiTreeNode { private Object data; private BiTreeNode lchild, rchild; public BiTreeNode(){ this(null); } public BiTreeNode(Object data){ this(data, null,转载 2015-06-10 00:53:59 · 350 阅读 · 0 评论 -
循环顺序队列2——使用标示位判断队满或空
public class CircularQueue implements IQueue { /** * 循环顺序队列 * 采用设置标志位的方法区别循环队列的判空和判满 * 包括入队、出队和判队列是否为空 * */ private Object[] queueElem; //队列存储空间 private int flag = 0; //标志变量,当入队操作成功原创 2015-06-09 01:16:37 · 1181 阅读 · 0 评论 -
链队列
public class LinkQueue implements IQueue { private Node front; private Node rear; public LinkQueue(){ front = rear = null; } public void clear(){ front = rear = null; } public boolean转载 2015-06-08 00:12:05 · 345 阅读 · 0 评论 -
栈的应用3——表达式求值
public class Example3_3 { /** * 栈的应用实例 * 算术表达式求值 * * */ //将算术表达式转换为后缀表达式的函数,结果以字符串的形式返回 public String convertToPostfix(String expression) throws Exception { LinkStack st = new LinkStack转载 2015-06-07 19:34:31 · 330 阅读 · 0 评论 -
栈的应用1——判断java语句是否合法
import java.util.Scanner; public class Example3_1 { /** * 栈的应用实例 * 判断java语句中分隔符是否匹配 * * */ private final int LEFT = 0; private final int RIGHT = 1; private final int OTHER = 2; //判断转载 2015-06-07 16:59:24 · 406 阅读 · 0 评论 -
线性表节点
public class Node { private Object data; //存放节点值 private Node next; //无参数的构造方法 public Node(){ this(null, null); } public Node(Object data){ this(data, null); } public Node(Object da转载 2015-06-07 16:11:33 · 748 阅读 · 0 评论 -
线性表接口
public interface IList { public Node getHead(); public void clear(); public boolean isEmpty(); public int length(); public Object get(int i)throws Exception; public void insert转载 2015-06-07 16:22:42 · 324 阅读 · 0 评论 -
栈接口
public interface IStack { public void clear(); public boolean isEmpty(); public int length(); public Object peek(); public void push(Object x) throws Exception; public Object pop(); }转载 2015-06-07 16:38:33 · 317 阅读 · 0 评论 -
顺序栈
package StackAndQueue; public class SqStack implements IStack { private Object[] stackElem; //对象数组 private int top; //在非空栈中,top始终指向栈顶元素的下一个位置,当栈为空时,top值为0 //栈的构造函数 public SqStac转载 2015-06-07 16:39:47 · 350 阅读 · 0 评论 -
顺序队列
public class SqQueue implements IQueue{ private Object[] queueElem; private int front; private int rear; public SqQueue(int maxSize){ front = rear = 0; queueElem = new Object[maxSize]; }转载 2015-06-08 00:11:13 · 297 阅读 · 0 评论 -
栈的应用2——大数相加
public class Example3_2LargeNumAdd { //大数相加 /** * 栈的应用实例 * 大数相加 * * * */ public String add(String a, String b) throws Exception{ LinkStack sum = new LinkStack(); LinkStack sA = numSpl转载 2015-06-07 16:59:34 · 341 阅读 · 0 评论 -
队列接口
public interface IQueue { public void clear(); public boolean isEmpty(); public int length(); public Object peek(); public void offer(Object x) throws Exception; public Object转载 2015-06-07 16:34:44 · 336 阅读 · 0 评论 -
链表
import java.util.Scanner; public class LinkList implements IList{ private Node head; //单链表的头指针 public Node getHead(){ return head; } //单链表的构造函数 public LinkList(){ head =转载 2015-06-07 16:32:09 · 279 阅读 · 0 评论 -
线段树
实际上还是称为区间树更好理解一些。 树:是一棵树,而且是一棵二叉树。 线段:树上的每个节点对应于一个线段(还是叫“区间”更容易理解,区间的起点和终点通常为整数) 同一层的节点所代表的区间,相互不会重叠。 叶子节点的区间是单位长度,不能再分了。 线段树是一棵二叉树,树中的每一个结点表示了一个区间[a,b]。a,b通常是整数。每一个叶子节点表示了一个单位区间。对于每一个转载 2015-06-14 15:30:28 · 284 阅读 · 0 评论