摘要: 1 /*线性表的数组实现 2 *特点:插入删除慢需要平均移动一半的数据,查找较快 3 *注意:有重复和无重复的数据对应的操作会有些不同 4 *注意数组一旦创建其大小就固定了 5 *Java集合长度可变是由于创建新的数组将原来旧的数据复制过去--这些附加功能牺牲了效率 6 *主要实现以下几个功能 7 *1.线性表查找 8 *2.线性表删除 9 *3.线性表的插入存... 阅读全文
posted @ 2017-10-17 11:03 sun1993 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 1 /*用链表实现的队列--使用的是双端链表 2 *注意:空指针错误肯定是引用没有指向对象 3 * */ 4 public class MyLinkedQueue { 5 private MyFirstAndLastLinkedList list; 6 private int items; 7 8 public MyLinkedQueue() { ... 阅读全文
posted @ 2017-10-17 11:01 sun1993 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 该链表事先已经定义好了,可以直接使用。 阅读全文
posted @ 2017-10-17 10:59 sun1993 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 1 /*双端链表--比普通链表多了一个指向最后一个节点的引用 2 * 特点: 链表可以进行尾巴插入--输出顺序和输入顺序一致 3 * 但是不可以进行尾巴删除因为没有倒数第二节点的引用 4 * */ 5 public class MyFirstAndLastLinkedList { 6 public Link first; 7 public Link ... 阅读全文
posted @ 2017-10-17 10:55 sun1993 阅读(876) 评论(0) 推荐(0) 编辑
摘要: 1 /*栈和队列:逻辑结构属于操作受限的线性表 2 *栈:特点先进后出,只允许在栈顶操作 3 *栈的实现方式:顺序栈和链栈 4 *常见的操作:进栈,出栈,获取栈顶,判空,判满,栈的容量 5 *栈的应用 6 *1.逆序相关操作 7 *2.分隔符匹配 8 * */ 9 //顺序栈 10 public class MyStack { 11 private lon... 阅读全文
posted @ 2017-10-17 10:53 sun1993 阅读(855) 评论(0) 推荐(0) 编辑
摘要: 1 /*优先队列--是对队列的一种改进 2 *要存储的数据存在优先级--数值小的优先级高--在队头 3 *优先队列的实现 4 *1.数组:适合数据量小的情况(没有用rear+front实现) 5 *优先队列头在items-1,队列尾在0是固定的 6 *2.堆:适合数据量大的情况 7 *优先队列的效率:插入O(N)移除O(1) 8 *优先队列的应用:操作系统线程调度算... 阅读全文
posted @ 2017-10-17 10:51 sun1993 阅读(1139) 评论(0) 推荐(0) 编辑
摘要: 1 /*队列:其实也是一种操作受限的线性表 2 *特点:先进先出 3 *队尾指针:负责元素的进队 4 *队头指针:负责元素的出队 5 *注意:普通队--容易浪费空间,一般队列使用最多的就是循环队列--指针环绕 6 *队列的实现方式:数组/链表 7 *队列判空判满: 8 *1.按照队列中元素的个数 9 *2.按照队头和队尾指针的关系 10 *存在双端队列:每端都... 阅读全文
posted @ 2017-10-17 10:48 sun1993 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 1 /*有序链表--使用的是单链表实现 2 *在插入的时候保持按照值顺序排列 3 *对于删除最小值的节点效率最高--适合频繁的删除最小的节点 4 * */ 5 public class MySortedLinkList { 6 public Link first; 7 8 public MySortedLinkList() { 9 ... 阅读全文
posted @ 2017-10-17 10:43 sun1993 阅读(2445) 评论(0) 推荐(1) 编辑
摘要: 1 /*双向链表特点: 2 *1.每个节点含有两个引用,previos和next,支持向前或向后的遍历(除头节点) 3 *2.缺点插入或删除的时候涉及到引用修改的比较多 4 *注意:下面的双向链表其实也实现了双端链表 5 *注意:在Java中多个引用可以指向同一个对象,也可以随时改变引用的指向 6 * 关于修改引用细心一点就可以 引用A = 引用B 表... 阅读全文
posted @ 2017-10-17 10:38 sun1993 阅读(1124) 评论(0) 推荐(0) 编辑
摘要: 1 /*将中缀表达式--转化为后缀表达式--属于栈的一种应用 2 *具体思路: 3 *1.扫描字符串,遇到操作数字符直接不管,存到一个字符串里边 4 *2.操作符优先级比较--定义了方法 5 * 栈中优先级高:出栈存进字符串,当前的操作符进栈 6 * 当前操作符优先级高,直接进栈 7 * 对于左边括号直接进栈,右边括号涉及... 阅读全文
posted @ 2017-10-15 15:08 sun1993 阅读(3954) 评论(0) 推荐(0) 编辑