华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)作业解答3

7感门 20023
数据结构作业 2002 年 第三章 栈和队列

2.37设带表头的双向循环链表表示的线性表为L=(a,a2,an) 试写一复杂度为O(n)的算法,将L改造成 L=(al, a3,..., an,...., a4, a2 L{m十a口a2- an ail ①tail=L> prior
2.37 设带表头的双向循环链表表示的线性表为L=(a1,a2,…an)。 试写一复杂度为O(n)的算法,将L改造成: L= (a1,a3,…,an,….,a4,a2) L /// a1 a2 an tail ① ① tail=L->prior

1ma口a an tail ②2用指针p访问链表的所有结点(不包括an) p=L->next while(p!=tail) p=p->next
L /// a1 a2 an tail ① ② 用指针p访问链表的所有结点(不包括an) p=L->next; while (p!=tail) { ……….. p=p->next; } p ②

Lma凵a2a3 an qp tail ③3当p访问链表的偶序号结点,删除p所指向的结点,不释放单元, p=L->next; 1=1 while (p!=tail) if(%2=0) &a=p; p=p->next; p->prior= -prior, q-prior-next-p else p=p->next +
L /// a1 a2 an tail ① ③ 当p访问链表的偶序号结点,删除p所指向的结点,不释放单元, p=L->next; i=1; while (p!=tail) { if (i%2==0) { q=p; p=p->next; p->prior=q ->prior; q ->prior->next=p; ………. } else p=p->next; i++; } p ③ a3 q

an a2 tail q ④将q所指向结点插入到tai所指向结点之后,tai指向不变。 g->next=tail->next q->prior=tail tall->next ->prior=q tail->next=q
/// a2 L a1 an tail ① p a3 q ④ 将q所指向结点插入到tail所指向结点之后, tail指向不变。 q->next=tail->next; q->prior=tail; tail->next ->prior=q; tail->next=q;

void adjust( dulLinkList *L) i tail==L->prior; p=L->next while (p!=tail) if(9%2=0 i g=p: p=p->next p> prior=q→> prior;q→ prior->next=p;/删除q结点* q->next=tail->next;q→>pior-tail;/*插入q结点* tail->next ->prior=q; tail->next=q else p=p->next +
void adjust(DulLinkList *L) { tail=L->prior; p=L->next; i=1; while (p!=tail) { if (i%2==0) { q=p; p=p->next; p->prior=q ->prior; q ->prior->next=p; /*删除q结点*/ q->next=tail->next; q->prior=tail; /*插入q结点*/ tail->next ->prior=q; tail->next=q; } else p=p->next; i++; } }

3.6试证明,若借助栈由输入序列123.n得到的输出序 列为p1p2…pn(它们是输入的一个排列),则在输出序列 中不可能出现这样的情形:存在<j<k使 pj<pk<pi 证明 根据i<j<k得出栈次序pi、pj、pk 又根据pj<pk<pi,所以pj、pk、pi入栈的次序依此 为:pj、pk、pi,由于pi最先出栈,此时的p、pk必在栈中, 且形式是p在下、pk在上,得出栈次序pi、pk、pj。 所以由<j<k和 pj<pk< pi推导出互相矛盾的结果,故原 命题成立
3.6 试证明,若借助栈由输入序列123…n得到的输出序 列为p1p 2 ….p n (它们是输入的一个排列),则在输出序列 中不可能出现这样的情形:存在i < j < k使pj<pk<pi. 证明: 根据 i < j < k 得出栈次序pi、pj、pk。 又根据 pj < pk < pi,所以 pj、pk、pi入栈的次序依此 为:pj、pk、pi,由于pi最先出栈,此时的 pj、pk必在栈中, 且形式是pj在下、pk在上,得出栈次序pi、 pk 、 pj 。 所以由i < j < k和pj<pk<pi推导出互相矛盾的结果,故原 命题成立
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第五章 数组和广义表.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第四章 字符串/串(string).ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第三章 栈和队列 3.4 队列(排队,queue).ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第三章 栈和队列 3.1 栈(stack)3.2 栈的应用举例.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第二章 线性表(2/2)2.3 线性表的链式存储结构.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第二章 线性表(1/2)2.1 线性表的定义 2.2 线性表的顺序表示.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第一章 绪论.ppt
- 华中科技大学:《C语言程序设计》作业解答4.ppt
- 华中科技大学:《C语言程序设计》作业解答3.ppt
- 华中科技大学:《C语言程序设计》作业4.doc
- 华中科技大学:《C语言程序设计》作业3.doc
- 华中科技大学:《C语言程序设计》作业2.doc
- 华中科技大学:《C语言程序设计》上机作业2.doc
- 华中科技大学:《C语言程序设计》上机作业1.doc
- 华中科技大学:《C语言程序设计》第7章 图.doc
- 华中科技大学:《C语言程序设计》数据结构算法C程序.doc
- 华中科技大学:《C语言程序设计》数据结构算法C程序1.doc
- 华中科技大学:《C语言程序设计》数据结构算法C程序.doc
- 华中科技大学:《C语言程序设计》演示文稿练习题1.ppt
- 华中科技大学:《C语言程序设计》作业9.doc
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)作业解答4.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)作业解答5.ppt
- 华中科技大学:《C语言程序设计》作业解答-图.ppt
- 华中科技大学:《C语言程序设计》作业解答-树.ppt
- 华中科技大学:《C语言程序设计》大型作业.ppt
- 华中科技大学:《C语言程序设计》第十章 内排序.ppt
- 华中科技大学:《C语言程序设计》第十章(10-4) 归并排序.ppt
- 华中科技大学:《C语言程序设计》第十二章 文件.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第六章 树和二叉树 6.1 树的定义 6.2 二叉树(binary tree)6.3 遍历二叉树和线索二叉树.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第六章 树和二叉树 6.3 遍历二叉树和线索二叉树.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第七章 图 Graph 7.1 图的定义和术语 7.2 图的存储结构.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第七章 图 Graph 7.3 图的遍历 7.4 图的连通性问题.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第七章 图 Graph 7.5 有向无环图及其应用 7.6 最短路径.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第九章 查找表 9.0 有关的术语 9.1 静态查找表 9.2 动态查找表.ppt
- 华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)第九章 查找表 9.3 哈希(Hash)表和哈希法.ppt
- 华中科技大学电子与信息工程系:《微型计算机原理及应用》第一章 计算机的运算基础与微型机.ppt
- 华中科技大学电子与信息工程系:《微型计算机原理及应用》ftp地址.ppt
- 华中科技大学电子与信息工程系:《微型计算机原理及应用》第二章 汇编语言和汇编程序.ppt
- 华中科技大学电子与信息工程系:《微型计算机原理及应用》第三章 程序设计的基本技术.ppt
- 华中科技大学电子与信息工程系:《微型计算机原理及应用》第三章 软件设计基础.ppt