chunlanse2014

导航

2015年4月19日 #

3.1 栈—栈的定义及基本运算

摘要: 栈和队列是在软件设计中常用的两种数据结构,它们的逻辑结构和线性表相同。其特点在于运算受到了限制:栈按“后进先出”的规则进行操作,队列按“先进先出”的规则进行操作,故称运算受限制的线性表。栈是限制在表的一端进行插入和删除的线性表。允许插入、删除的这一端称为栈顶,另一个固定端称为栈底。当表中没有元素时称... 阅读全文

posted @ 2015-04-19 19:33 chunlanse2014 阅读(753) 评论(0) 推荐(0) 编辑

2.4顺序表和链表的比较

摘要: 在本章介绍了线性表的逻辑结构及它的两种存储结构:顺序表和链表。通过对它们的讨论可知它们各有优缺点,顺序存储有三个优点:(1) 方法简单,各种高级语言中都有数组,容易实现。(2) 不用为表示结点间的逻辑关系而增加额外的存储开销。(3) 顺序表具有按元素序号随机访问的特点。但它也有两个缺点:(1) 在顺... 阅读全文

posted @ 2015-04-19 19:25 chunlanse2014 阅读(317) 评论(0) 推荐(0) 编辑

2.3线性表的链式存储和运算—单链表应用举例

摘要: 例2.5 已知单链表H,写一算法将其倒置。即实现如图2.22的操作。(a)为倒置前,(b)为倒置后。算法思路:依次取原链表中的每个结点,将其作为第一个结点插入到新链表中去,指针p用来指向当前结点,p为空时结束。算法如下: 1 void reverse (Linklist H) 2 { 3 ... 阅读全文

posted @ 2015-04-19 19:14 chunlanse2014 阅读(498) 评论(0) 推荐(0) 编辑

2.3线性表的链式存储和运算—静态链表

摘要: 下面先请看图2.22 ,在图2.22中,规模较大的结构数组sd[MAXSIZE] 中有两个链表:其中链表SL是一个带头结点的单链表,表示了线性表(a1, a2, a3, a4, a5),而另一个单链表AV是将当前sd 中的空结点组成的链表。 数组sd的定义如下:1 #define MAXSIZE …... 阅读全文

posted @ 2015-04-19 12:03 chunlanse2014 阅读(368) 评论(0) 推荐(0) 编辑

2.3线性表的链式存储和运算—双向链表

摘要: 以上讨论的单链表的结点中只有一个指向其后继结点的指针域next,因此若已知某结点的指针为p,其后继结点的指针则为p->next ,而找其前驱则只能从该链表的头指针开始,顺着各结点的next 域进行,也就是说找后继的时间性能是O(1),找前驱的时间性能是O(n),如果也希望找前驱的时间性能达到O(1)... 阅读全文

posted @ 2015-04-19 11:11 chunlanse2014 阅读(312) 评论(0) 推荐(0) 编辑