数据结构习题(khxy)..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构习题(khxy).

习题1 1.1数据结构研究的内容是什么? 1.2什么是算法?评价算法(算法设计)的标准是什么?在保证正确性的前提下,算法设计的首要目标是什么? 1.3 viod sum(int n, int s) { int i,j,s=0; for (i=1;i=n;i++) for (j=1;j=i;j++) s=s+i*j; } 问题:(1) 对变量s的赋值操作总共执行了 次。 (2) 算法的时间复杂度是 。 1.4 编一高效算法,求 1!+2!+……+n! 。 1.5 将一组无序的数据排列成一个有序序列,写一算法实现。 习题2 2.1什么是线性表?线性表有哪两种存储结构?请比较这两种存储结构的不同。 2.2什么是头指针?什么是头结点?它们的作用是什么? 2.3若线性表以一维数组为存储结构,该表中有1000个数据元素,第一个元素的地址为1000,每个元素的值需占用4个存储单元,该线性表需要多大的存储空间?第200个元素的起始地址是多少?在第300处插入一个元素,有多少个元素会移动? 2.4设线性表存于a[1..arrsize]的前n个分量中, 且递增有序. 写一算法,将x插入到线性表的适当位置, 以保持线性表的有序性。 2.5已知线性表存于a[1..array]中的前n个分量中,写一算法,删除从第i个元素起的k个元素。 2.6写一算法, 将顺序存储的线性表(v1,v2,…,vn)改变成(vk+1,vk+2,…,vn,v1,v2,…,vk)。 2.7写一算法,将所有值为x的元素移到顺序表的末尾. 2.8写出在带头结点的动态单链表结构上实现线性表操作 LOCATE(L,X)和 LENGTH(L)的算法 2.9已知ha和hb分别指向两个单链表的头结点, 且头结点的数据域(整型)中存放链表的长度, 写一算法将这两个链表接在一起, 并要求以尽可能短的时间完成。 2.10已知线性表中的元素按值递增排列, 并以单链表作存储结构. 写一高效算法, 删除表中的多余元素, 使得运算后的线性表中所有元素的值均不相同。 2.11 以一维数组、单向链表、双向循环链表作存储结构, 实现线性表就地逆置的算法, 即将线性表:(a1,a2,...an)==(an,...,a2,a1) 2.12 已知单向循环链表表示的线性表中含有三全域:pre、数据和next, 其中 数据为数据域,next为指针域,值为后继, pre也是指针域, 其值为NIL. 写一算法, 将此链改为双向链表。 2.13 在其元素值按递增排序的双向链表中增加一个freq频度域(初值为0), 每当进行LOCATE(L,X) 运算时, X结点的freq加1, 写一算法完成LOCATE(L,X), 并保证其有序性。 2.14设计一个算法, 将一个用循环链表表示的稀疏多项式分解成两个多项式, 使这两个多项式中各自仅含奇次项或偶次项, 并要求利用原链表的结点空间来构成这两个链表。 习题3 3.1什么是栈?若入栈顺序为1234,列出所有可能的出栈序列。 3.2什么是栈?什么是队列?它们各自有什么特点?它们的共同点是什么?他们与线性表有何不同。 3.3 什么是队列?什么是顺序队列?什么是循环队列?循环队列的优点是什么?举一例说明队列的应用。 3.4 在火车站的入口处有n节硬席或软席车厢(分别用H和S来表示)等待调度,写一算法,输出对 这n节车厢进行调度的操作序列,使和所有的软件席车厢调到硬席车厢之前。 3.5 写一个判别表达式中开、闭括号是否配对出现的算法。 3.6 在一个带头结点的循环队列中,只设一个尾指针指向队尾元素结点,编写算法实现队列初始化、入队和出队。 3.7 以数组q[m]存放循环队列的元素,同时设rear和quelen表示循环队列中队尾的位置和内含的元素个数, 给出队满条件, 并写出相应的入队列和出队列的算法。 习题4 4.1 简述空串和空格串(或称空格符串)的区别。 4.2 对于字符串的每个基本运算,讨论是否可由其它基本运算构造而得?如何构造? 4.3 设s=“I AM A STUDENT”, t=“GOOD”, q=“WORKER”。 求:StrLength(s), SubString(s,8,7), Index(s,“a”), Index(s,t), Replace(s,“STUDENT”,q),Concat(Substring(s,6,2), Concat(t, Substring(s,7,8)))。 4.4 已知:s=ˊ(XYZ)+*ˊ,t=ˊ(X+Z)*Y。利用联接、求子串和置换等基本运算,将s转化为t。 4.5 以4.2.1中所述类型SString 作存储结构实现以下基本操作: (1)CONCAT;(2

文档评论(0)

stzs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档