网站大量收购闲置独家精品文档,联系QQ:2885784924

数据结构业题.docVIP

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

第一章 1、设n为正整数,利用大O记号,将下列程序段的执行时间表示为n的函数。 (1) i=1; k=0;?   while(in)    { k=k+10*i;i++;    }? (2) i=0; k=0;   do{     k=k+10*i; i++;?    }   while(in);? (3) i=1; j=0;?   while(i+j=n)?    {     if (ij) j++;     else i++;    } (4)x=n; // n1?  while (x=(y+1)*(y+1))   y++; (5) x=91; y=100;? ??? while(y0)     if(x100)      {x=x-10;y--;}     else x++; 按增长率由小至大的顺序排列下列各函数: 2100, (3/2)n,(2/3)n, nn ,n0.5 , n! ,2n ,lgn ,nlgn, n(3/2) 2-7 针对带表头结点的单链表,试编写下列函数。 (1) 定位函数Locate:在单链表中寻找第i个结点。若找到,则函数返回第i个结点的地址;若找不到,则函数返回NULL。 (2) 求最大值函数max:通过一趟遍历在单链表中确定值最大的结点。 第三章 3-1.将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。两个栈均从两端向中间增长。当向第0号栈插入一个新元素时,使top[0]增1得到新的栈顶位置,当向第1号栈插入一个新元素时,使top[1]减1得到新的栈顶位置。当top[0]+1 == top[1]时或top[0] == top[1]-1时,栈空间满,此时不能再向任一栈加入新的元素。试定义这种双栈(Double Stack)结构的类型定义,并实现初始化、判栈空、判栈满、插入、删除算法。 【提示】 类型定义: #define m 100; Typedef int dsType;//双栈的元素类型 Typedef struct{ int top[2]; //双栈的栈顶指针和栈底指针 dsType V[m];//栈数组 } DoubleStack; 初始化空双栈算法: InitdStack(DoubleStack ds ) { //初始化空双栈ds ds.top[0]=-1; ds.top[1]=m; } 判栈空算法: int DStackEmpty(DoubleStack ds , int i) { //判断双栈ds的第i(0或1)个栈是否为空,空则返回1,否则返回0 if (i==0 ds.top[0]==-1) return 1; if (i==1 ds.top[1]==m) return 1; return 0; } 3-2. 试利用算符优先法,画出对如下中缀算术表达式求值时运算符栈和操作数栈的变化。 a + b * (c - d) – e# (#表示结束符) 步序 扫描项 项类型 动作 OPND栈变化 OPTR栈变化 0 ( OPTR栈与OPND栈初始化, ‘#’ 进OPTR栈, 取第一个符号 # 1 a 操作数 ( a 进OPND栈, 取下一符号 a # 2 + 操作符 ( ‘ + ’ ‘#’, 进OPTR栈, 取下一符号 a #+ …… …… …… …… …… …… 3-3 分别写出顺序循环队列队列Q状态为“空”还是“满”的条件和计算队列中元素个数的公式。 第四章 设有模式串T1,T2,T1=‘aaab’,T2=‘abcabaa’, 目标串s为‘abc aaabbabcabaacbacba’, (1)计算模式串T1的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。 (2)计算模式串T2的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。 学号尾数为奇数做第(1)题;偶数做第(2)题 第五章 5-1 设有一个二维数组A[m][n](按照列优先存储,m、n均大于5),假设A[0][0]存放位置在644(10),A[2][3]存放位置在676(10),每个元素占一个空间,问A[4][4](10)存放在什么位置?脚注(10)表示用10进制表示。 5-2假二维数组A9(3(5(8,第一个元素的字节地址是1000,每个元素占6个字节。问下列元素的存储地址是什么? (1)a0000 (2)a8247 (3)按行优先存储(最左下标优先)时a3125的地址 (4)按照列优先存储(最右下标优先)时a

文档评论(0)

技术支持工程师 + 关注
实名认证
文档贡献者

仪器公司技术支持工程师

1亿VIP精品文档

相关文档