数据结构与算法——C语言和Java语言描述 ppt及答案和其他资源习题答案-修改标红.docVIP

  • 38
  • 0
  • 约8.94千字
  • 约 14页
  • 2019-05-07 发布于广东
  • 举报

数据结构与算法——C语言和Java语言描述 ppt及答案和其他资源习题答案-修改标红.doc

习题答案 第1章 绪论 1.填空题 (1) 线性结构、树型结构和图型结构 (2) 一对一、一对多和多对多 (3) 效率,人对算法阅读理解的难易程度,对于非法的输入数据,算法能给出相应的响应,而不是产生不可预料的后果 (4) 时间复杂度 2.选择题 (1) C (2) C 3.简答题 程序1 答案:n-1, O(n) 程序2 答案: n-1 O(n) 程序3 答案: 11* n+1, O(n)(n为初始值100) 程序4 答案: , O() 第2章 1.填空题 (1)顺序存储和链式存储(2) addr+m*i(3)n-i+1 (4) 1=in ; 0=in-1 2.选择题 (1) B (2) A C (3) B 第3章 1.填空题 (1) 1,2,4 (2)push,pop,push,push,pop,push,pop,pop (3) 栈空;栈满。 (4) s.top -- ; s.top ++ 。 (5) 队尾 , 队头 。 (6) q.front==q.rear , q.front==(q.rear+1)%MaxSize 。 (7) 21 。 2.选择题 D C A B A D C C 3. (1)算法设计题基本操作如下: 进队 void AddQueue(CirQueue* q, int r, int f, int x) { Push(q,f,r,x,2) } 出队 Void RemoveQueue(CirQueue* q, int r, int f) { Pop(q,f,r,1) } 将x下推进栈i(i=1,2) Void Push(stack * s, int t1, int t2,int x,int i) { if (t2+1) mod n == t1 printf(“栈满”) else { if (i==1) {a[t1]=x?; t1=(t1-1)mod n?; } else { t2=(t2+1)mod n?; a[t2]=x?; } } } 将栈i(i=1,2)的栈顶元素上托出栈 Void Pop (stack * s, int t1, int t2,int i) { if (t1==t2) printf(“栈空”) else { if (i==1) { t1=(t1+1)mod n?; } else { t2=(t211)mod n?; } } } (2)约瑟夫环 //约瑟夫环 public void YueSeFu(int n,int k,int m) { int i; for(i=1;i=n;i++) AddQueue(q,i);//q为定义的顺序队列 //前k个元素先出队再入队 for(i=1;ik;i++){ Object x=DelQueue(q);//出队 AddQueue(q,x);//入队 } printf(出队序列:\n); while(!notEmpty()){ for(i=1;im;i++){ Object x= DelQueue(q); AddQueue(q,x);} //第m个出队并打印 Object x= DelQueue(q); printf(“%d ”,x); } } 第4章 1.填空题 (1) 两个串的长度相等 和 对应位置的字符相等 。 (2) 含有n个字符的有限序列n=0 。 (3) 不含任何字符的串 。 (4) 仅含空格字符的字符串 。 (5) 固定长度 , 设置长度指针 。 2. 选择题 (BBD) 3. 简答题 (1)解答:不含任何字符的串称为空串,其串长度为零;仅含有空格字符的串称为空格串,它的长度为串中空格符的个数。 空格符在字符串中可用来分隔一般的字符,便于阅读和识别,但空格符会占用有效串长。 空串在处理过程中可用于作为任意字符串的子串。 (2) 解答: StrLength(s)=14, StrLength(t)=4, SubString(s,7,7)= ’STUDENT’, SubString(t,2,1)= ’O’

文档评论(0)

1亿VIP精品文档

相关文档