
数据结构与算法
halfsuccess
这个作者很懒,什么都没留下…
展开
-
常用数据结构及其性能比较
原创 2012-10-03 00:48:05 · 451 阅读 · 0 评论 -
用堆栈实现括号匹配——ADT实现
/**********************栈的定义*********************************/ package pk.stack; public class OrderStack { private int count; private int capacity; private int capacityIncrement; private Ob原创 2012-10-20 19:39:18 · 533 阅读 · 0 评论 -
访问单向链表和顺序数组第i个元素的时间复杂度的分析
假设链表L有n个元素,如果这n个元素中每一个元素被访问的概率都为相同,则访问到第i个元素所前移的指针的平均次数为: Average = (1+2+3+......+n)/n = n(1+n)/2/n = n/2 + 1/2 所以,访问第i个元素的平均时间为O(n)。相比起来,在数组L中访问第i个元素的平均时间为O(1)。 其他操作时间代价见下表:原创 2012-10-22 22:45:09 · 12549 阅读 · 0 评论 -
队列的两种实现方法
一:在顺序队列的实现中,队列表示成带有如下内容的对象: (1)一个计数器count,他跟踪队列中的元素的数目(队列长度) (2)一个数组索引front,他跟踪队列中下一个要删除元素的索引 (3)一个数组索引rear,他跟踪队列中下一个队列元素的插入位置 (4)一个队列元素数组itemArray,他存储了队列元素的内容 (6)一个capacity,他给出了当前itemArray中的索引位置原创 2012-10-22 21:39:28 · 1451 阅读 · 0 评论 -
堆栈的两种实现方式
顺序堆栈的表示: package pk.stack; public class OrderStack { private int count; private int capacity; private int capacityIncrement; private Object[] itemArray; public OrderStack() {// 初始化栈 count原创 2012-10-20 11:31:27 · 540 阅读 · 0 评论 -
利用无序数组实现优先队列并排序数组——ADT实现
优先队列的实现有多中实现方法,下面给出利用无序数组实现优先队列并排序数组: /*****************************抽象数据类型***********************/ package pk.adt; public interface ComparisonKey { int compareTo(ComparisonKey value); Str原创 2012-10-19 23:13:34 · 2010 阅读 · 0 评论 -
链表的基本操作——链式表示数据
Java实现链表的创建与数据的插入、删除、查找、打印: import java.applet.Applet; class ListNode { String airport; ListNode link; } class LinkedList { int length; ListNode firstNode; public int size() { return原创 2012-10-14 21:49:41 · 431 阅读 · 0 评论 -
数据抽象级——ADT(abstract data type)
在较高数据抽象级上的对象与操作可以通过组织较低较低数据抽象级上的对象与操作来表达。原创 2012-10-13 22:14:41 · 529 阅读 · 0 评论 -
链表的应用——垃圾收集机制&动态分配内存的工作原理
在某些早期的编程语言中,内存部分为两个区域:一个区域包含着原子的表示,用作元素;另一个区域包含着有序的指针对。一对指针中,左边的指针被存储在一个名为car域中,右边的指针被存储在cdr域中,如下图所示: 从上图你可以看出,每一个原子都是一个具有类type域和value域的节点。type域包含着一个标签,它规定了值域中值的类型。该系统称为标记式类型的系统。当我们在程序执行的过程中对一个原创 2012-10-25 19:50:51 · 710 阅读 · 0 评论