栈和队列(五):与栈和队列相关的算法
2012-04-04 11:09:50摘要:这篇文章是一些与栈和队列相关的算法 1.栈的push、pop序列是否一致 2.如何用一个数组实现两个栈 3.用两个栈实现队列 4.如果用一个循环数组q[num]表示队列时,该队列只有一个头引用front,不设尾引用rear,而改置计数器count用以记录队列中节点的个数。请实现出该队列的基本运算并回答此队列中能容纳的元素个数是count-1吗 阅读全文
摘要:这篇文章是一些与栈和队列相关的算法 1.栈的push、pop序列是否一致 2.如何用一个数组实现两个栈 3.用两个栈实现队列 4.如果用一个循环数组q[num]表示队列时,该队列只有一个头引用front,不设尾引用rear,而改置计数器count用以记录队列中节点的个数。请实现出该队列的基本运算并回答此队列中能容纳的元素个数是count-1吗 阅读全文
摘要:一、CPU资源的竞争问题 二、主机与外部设备之间速度不匹配的问题 三、舞伴问题 四、用队列排序数据 五、优先队列 阅读全文
摘要:FIFO: First In, First Out(先进先出) 受限的线性表,在一端插入,在另一端删除。 阅读全文
摘要:一、数制转换 二、括号匹配的检验 三、迷宫求解 四、Hanoi塔问题 阅读全文
摘要:LIFO: Last In, First Out(后进先出) 受限的线性表,它插入和删除只能在表的一端进行 所有插入和删除操作都只能在表的一端进行,这一端叫栈顶。 最后进入栈中的数据最先被拿走。 阅读全文
摘要:一、结点为LinkedListNode对象 该对象的实现如下 //在LinkedListT中LinkedListNodeT相互之间构成双向环状链表 //该双向环状链表通过内部成员next、prev来实现,但对于外部不可见 //对于外部Next、Previous表现为双向链表,首尾不构成环 public sealed class LinkedListNodeT { internal Link... 阅读全文
摘要:List<T>类 一、采用数组保存数据 二、当数据空间不够时,扩大1倍空间 三、插入数据时最坏可能会带来n-1次数据复制 四、当删除数据时最坏可能带来n-1次数据复制 五、提供QuickSort排序和二分查找方法 阅读全文
摘要:这篇文章是一些与线性表相关的算法 1.如果顺序表中每个元素都是整数,设计用最少时间把所有值为负数的元素放在全部正数值元素的前面。 2.如果顺序表为非递减有序排列,试删除顺序表中多余的值相同的元素。 3.编写一个单链表逆置算法。 4.找出单链表的中间元素。 阅读全文
摘要:在双链表中,有些操作(如取元素、定位等)算法中仅涉及后继结点,此时双向链表的算法和单链表的算法均相同,但对插入、删除操作,双向链表需同时修改后继和前驱两个引用,比单链表要复杂一些 阅读全文
摘要:线性表的链式表示就是采用链表实现存储,即表中数据元素是用一组任意的存储单元存储,它不要求逻辑上相邻的元素在物理位置上也相邻。这种数据结构有以下优点:其一,在进行插入和删除操作时,无需移动大量元素;其二,给长度变化较大的线性表无需预先分配最大空间;其三,表容量容易扩充。链表的特点是用一组任意的存储单元存储线性表的数据元素。因此,为了表示每个数据元素ai与其直接后继数据元素ai+1间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需要存储一个指示其直接后继的信息。这两部分信息组成数据元素ai的存储映像,称为结点(Node)。 阅读全文