计算机软件基础第二章课后答案..docVIP

  • 47
  • 0
  • 约6.28千字
  • 约 19页
  • 2019-01-14 发布于湖北
  • 举报
2.8 已知线性表L(a1,a2,…,an)元素按递增有序排列,用向量作存储结构,试编写算法:删除表中在c与d(c≤d)之间的元素。 解:dele(L,n,c,d) 1. k=0 2. for i=1 to n 3. if L[i]≥c.and. L[i]≤d 4. k←k+1 5. endif 6. if L[i]>d 7. L[i-k]←L[i] 8. endif 9. endfor 10. n←n-k 11. return 2.9 2.21 有一铁路交换站如题图(栈),火车从右边开进交换站,然后再开到左边,每节车厢均有编号如1,2,3,…,n。请问: (1)当n=3和n=4时有哪几种排序方式?哪几种排序方式不可能发生? (2)当n=6时,325641这样的排列是否能发生?154623的排列是否能发生? N=3时可能的出栈序列: 123 1S1X2S2X3S3X 132 1S1X2S3S3X2X 213 1S2S2X1X3S3X 231 1S2S2X3S3X1X 312 CAB 321 1S2S3S3X2X1X N=4,不可能的排列: 4312 4213 4231 4123 4132 3124 3142 3412 1423 2413 N=6时,325641可能 154623不可能 2.23 试画出表达式A*(B-D)/D+C**(E*F)执行过程中NS,OS栈的变化情况。 B-D=T1 D/T1=T2 T2*A=T3 E*F=T4 T4**C=T5 T5+T3=T6 D ) B - ( * A ; C + T2 * A ; ) F * E ( ** C + T3 ; ; T4 ** C + T3 ; ; T5 + T3 ; D / T1 * A ; ; T6 ; 2.22 2.26 用三元组和带行辅助向量形式表示下列稀疏矩阵: (1): (2): (1):三元组 带行辅助向量 行 列 值 1 1 15 1 4 22 1 6 -15 2 2 11 2 3 3 3 4 -6 5 1 91 6 3 28 (2): 三元组 i 1 2 3 4 5 6 POS 1 4 6 7 7 8 NUM 3 2 1 0 1 1 行 列 值 1 1 8 1 5 -13 1 9 26 2 1 15 2 4 6 2 8 5 3 2 -3 3 4 4 3 6 3 4 4 2 4 8 4 5 3 -12 6 2 2 7 4 4 8 1 7 9 1 12 9 4 2 9 6 6 9 9 30 i 1 2 3 4 5 6 7 8 9 POS 1 4 7 10 12 13 14 15 16 NUM 3 3 3 2 1 1 1 1 4 2.28 D D E F I J K G L A B C 2.29 前8行:1+2+4+8+16+32+64+128+256=511 第9行:满的尾512 加起来超过1000 1000-511=489这是第9行的度为1的结点 489/2=244余1 256-244=12 12-1=11 这是第8行度为1的结点 则度为1的结点数:n1=489+11=500 度为2的结点数:n2=n1-1=499 度为0的节点数:n0=1 1个节点只有非空左子树 11个结点只有非空右子树 第一种做法: N1=0/1,N是奇?N1=0;N是偶?N1=1 N=1000,N1=1 1000=N0+1+N2 1 N0=N2+1 2 N0=500,N2=499 第二法: N=1000,29N210 ?完全二叉的深度H=10 第10层叶子结点数:N01=N-(29-1)=1000-511=489 第10层总结点数:29 =512 第10层空的结点数:512-489=23 空结点数是奇数?N1=1 第9层叶子结点数:N02=(23-1)/2=11 总叶子结点数:N0=N01+N02=489+11=500 N2=N-N0-N1=1000-500-1=499 度为3的树,1个度为1的结点,3个度为2的结点,4个度为3的结点,求叶子结点数? N=N0+N1+N2+N3=N0+1+3+4 B=N-1=N1+2*N2+3*N3=1+2*3+3*4=19?N=20?N0=12 2.30 设一棵二叉树其中序和后序遍历为 中序:BDCEAFHG 后序:DECBHGFA 画出这棵二叉树的逻辑结构,并写出先序遍历结果。 先序遍历:ABCDEFGH 其逻辑结构如下: A A B F C D E G H 1,2,3依次进栈,求可

文档评论(0)

1亿VIP精品文档

相关文档