数据结构作业答案.pptVIP

  • 33
  • 0
  • 约1.32万字
  • 约 55页
  • 2017-06-05 发布于四川
  • 举报
第1章 绪论 1.简述下列术语:数据元素、数据项、数据对象、数据结构、逻辑结构结构、物理结构、数据类型。 2.什么是算法?算法有哪些特性?如何判断一个算法的好坏? 3.由大到小排列以下函数的复杂度: 2100,(3/2)n,(2/3)n,log2n,log2(log2n),n,n2,n!, n2/3,n3,n3/2 4.按照数据结构的数学表示,画出其图示。 B=( D,S) D={k1,k2,k3, …,k9} S={k1,k3,k1,k8,k2,k3,k2,k4,k2,k5, k3,k9, k4,k7,k4,k6,k5,k6, k8,k9,k9,k7} 第1章 绪论 5.按照数据结构的图示,写出其数学表示。 第1章 绪论 6.求下面程序的时间复杂度。 (1) s=0; for(i=0;in;i++) for(j=0;jm;j++) s+=B[i][j]; (2) i=1; while(i=n) i*=3; (3) i=s=0; while(sn) { i++; s+=i; } 第1章 作业答案 1. 2. 略 3. 由大到小排列以下函数的复杂度: n!2n(3/2)nn3n2n3/2 nn2/3log2nlog2(log2n) (2/3)n 4. 5. 略 6. O(m*n) O(log3n) O(n) 第2章 线性表(Linear List) 1. 将线性表中的元素以第一个元素的key为界划分成两部分,要求排在分界元素之前的元素,其key值都比分界元素小,而排在其后的元素,其key值都比分界元素大。 2. 以链表的表头元素为界把链表划分成两部分,要求链接在分界元素之前的元素,其key值都比分界元素小,而链接在其后的元素,其key值都比分界元素大。 第2章 作业答案(1) typedef struct{ int Key; InfoType info; }ElemType; void SqPartition(SqList L) { int i,j; ElemType temp1,temp2; temp1=L.elem[0]; //初始分界元素在下标0的位置 for(i=1;iL.length;i++) if(L.elem[i].keytemp1.key) //小于分界元素 { temp2=L.elem[i]; //暂存temp2中 for(j=i;j0;j--) L.elem[j]=L.elem[j-1]; // L.elem[i]左方的元素右移一位 L.elem[0]=temp2; // L-elem[i]放到最左方 } } 第2章 作业答案(2) void LkPartition(LinkList L) { LNode *p,*q,*temp; temp=p=head; //分界结点为初始时的链头结点 while(p-next) /*当链表未完*/ if(p-next-data.keytemp-data.key) //当前结点较小 { q=p-next; //当前结点暂存指针q 中 p-next=q-next; //从链表中删去结点p q-next=L; //将结点q与链头指针head 链接 L=q; //结点q做新链头 } else p=p-next //指针后移 } 第3章 栈与队列 1. 若按右图所示的铁路调度栈进行车厢调度(两侧铁道均为单向行使道)请回答: (1)如果进站的车厢序列为123,则可能得到的出站车厢序列是什么? (2)如果进站的车厢序列为123456,则能否得到435612和135426的出站序列,并说明不能得到或者如何得到(写出以S表示进栈和以X表示出栈的操作序列)。 (3)假设调度栈入口处有节硬席车厢或软席车厢(分别以和表示)等待调度,编写算法,输出对这节车厢进行调度的操作(即入栈和出栈操作)序列,以使所有的硬席车厢都被调整到软席车厢前面。 第3章 栈与队列 2. 计算下列表达式的值: (1)前缀表达式:**7 6-/8 2 1 (2)中缀表达式:8*9-(16-4)/2+5 (3)后缀表达式:5 7 6*8 2+5/-* 3. 进行表达式的转换:

文档评论(0)

1亿VIP精品文档

相关文档