上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页
摘要: 二叉树,结合了两种数据结构的优点:一种是有序数组,一种是链表。在树中查找数据项的速度和在有序数组查找一样快;并且插入和删除数据项的速度和链表一样快。 1)在有序数组插入数据太慢:通过二分查找找到该位置,但每次所有比新数据大的坐标都要往后移动一位。不适合于频繁插入和删除数据的操作。2)在链表查找太慢:... 阅读全文
posted @ 2012-11-18 14:24 Kyle_Java 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 其实自己的努力,真的会有回报吗? 阅读全文
posted @ 2012-11-18 12:24 Kyle_Java 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 小结:1)链表包含一个 LinkList 对象和许多个 Link 对象。2)LinkList对象都包含一个引用,这个引用通常叫first ,它指向链表的第一个链接点。3)每个 LinkList对象包含数据和一个引用,该引用叫做next ,它指向链表的下一个链接点。4)next字段为null ,表示已经到链表的结尾。5)在表头插入链接点需要把新的链接点的next指向原来第一个链接点,然后把first指向新的链接点。6)在表头删除链接点,需要first =first.next();7)为了遍历整个链表,从 first开始,然后从一个链接点指向下一个链接点,方法是用每个链接点的 next找到下一个链 阅读全文
posted @ 2012-11-18 12:22 Kyle_Java 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 假设你要遍历一张链表,然后需要的每个链接点上执行一些操作。例如一张链表存储职工表,需要提高拿最低工资员工的薪水,这样无法做出来。若是数组,这种操作很容易。可以用数组下标跟踪每个数据项,并进行操作,再指向下一个坐标。链表虽然可以用 find() 找出指定的链接点,但是这种需要频繁比较,而且多次遍历。1 for(int i = 0 ; i < emps.length; i++){2 Emp emp = emps[i];3 if(emp.getSalary() < 1800){4 emp.setSalary(1800);5 ... 阅读全文
posted @ 2012-11-17 18:43 Kyle_Java 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 链表的效率:在表头插入和删除数据项很快,仅需要改变一两个引用值,所花费时间O(1)。平均起来,删除、查找、在指定的链接点插入仅需要搜索一半的数据,需要O(N)次比较。在数据执行这些操作也需要O(N)次比较,但链表更快一些,因为插入删除数据项时,链表不需要移动其它数据项。链表比数组优越的重要方面在于链表需要多少内存就用多少内存,并且可以扩展到其它所有可用的内存。数组的大小从创建时就定义好,所以经常由于数组太大导致效率低下,或者数组太小空间溢出。向量是一种可扩展的数组,但它只允许以固定的大小增长扩展(溢出时增长一倍数组容量),在内存使用率比链表的低。ADT:抽象数据类型,是指一些数据以及对这些数据 阅读全文
posted @ 2012-11-16 16:05 Kyle_Java 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 双端链表:与单链表非常相似,但添加了一个特性:对最后一个链接点的引用,就像跟单链表的第一个链接点引用一样。(insertFirst)单链表对最后的一个链接点也可以引用,方法是遍历到表尾,找到最后一个链接点,但是效率太低了,所以提出双端链表。 1 public class Link { 2 3 private int iData; 4 private double dData; 5 private Link next; 6 7 public Link(int i, double d) { 8 this.iData = i; 9 ... 阅读全文
posted @ 2012-11-16 11:22 Kyle_Java 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 在链表中,每个数据项都被包含在(Link)中,一个链接点是某个类的对象,这个类可以叫做Link。每个Link对象都包含一个对下一个链接点引用的字段(next)。 1 public class Link {2 public int iData;3 public double dDa... 阅读全文
posted @ 2012-11-13 22:46 Kyle_Java 阅读(224) 评论(1) 推荐(1) 编辑
摘要: 队列:先进先出 在现实中,买电影票排队,当前面的的人买完票离开之后,后面的人都要往前移动一步。在计算机中也可以这么类似的做法,但是效率很低。所以,我们用了队列中的队头(front)和队尾(rear)指针保持所有的数据项不变。 循环队列:在往队列中插入一个新的数据项,rear箭头往上移动,移向数组下标... 阅读全文
posted @ 2012-11-11 20:01 Kyle_Java 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 栈:先进后出,后进先出。 1 public class Stack { 2 3 private int maxSize; 4 private int[] stackArray; 5 private int top; 6 7 public Stack(int s){ 8 this.maxSize = s; 9 stackArray = new int[maxSize];10 top = -1;11 }12 13 public void push(int d){14 stackArr... 阅读全文
posted @ 2012-11-11 11:50 Kyle_Java 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序: 假设一个数组 int[] array 长度为5,坐标为:[0]、[1]、[2]、[3]、[4] ,每相邻两位数比较。第一次比较:[0]与[1]、[1]与[2]、[2]与[3]、[3]与[4] (array[4] 已是最大)第二次比较:[0]与[1]、[1]与[2]、[2]与[3]第三次比... 阅读全文
posted @ 2012-09-10 13:52 Kyle_Java 阅读(205) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页