《数据结构与算法:Python语言描述 》课后习题

2018-09-06  本文已影响0人  孙怀阔

1)这本书为什么值得看:

第三章、线性表


1.复习下面概念


2.那些事物适合用线性表存储和管理?并说明原因。

顺序表优点:随机存取,在O(1)时间进行;缺点:插入和删除都可能需要移动很多元素,操作代价很高(尾端插入、删除除外)。

3.

4.

5.

6.

7.

淘宝的购物车,用户需要首端加入和随机删除,用链接表合适。

8.

9.

设计一个程序,对两个排序序列L1和L2进行归并,要求时间复杂度为O(max(m,n)),m和n是两个排序序列的元素个数。
def guibing(L1,L2):
for x in L1:
for y in L2:
while x<y:

10.比较带尾结点指针的单链表和循环单链表。

11.比较循环单链表和双链表的特点。



第四章、字符串

1.复习下面概念


2.

3.

4.



第五章、栈和队列


1.复习下面概念


2.

3.

4.

5.

6.中缀形式-->前缀形式

7.后缀形式-->中缀形式

8.中缀形式-->前缀形式、后缀形式

9.

while 支线上还有车厢:
    for 车厢=硬座:
        连接到车头上
    else:
        进入另一条支线
把另一条支线上的车厢连接到硬座车厢后面

10.

第六章、二叉树和树


1.复习下面概念


2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

def proc(t):
    x=t.left
    y=t.right
    t.left=y
    t.right=x
def preorder(t,proc):
    if t is None:
        return
    proc(t)
    preorder(t.left)
    preorder(t.right)


第七章、图

1.复习下面概念


2.

3.

4.

5.

6.

7.


注意:在下面几道题,顶点我都用下标来表示,比如顶点v2,就用2来表示。


8.

9.

10.

11.

12.

13.

14.

15.

16.

17.



第八章、字典和集合

1.复习下面概念

数学分析法、折叠法、中平方法都是适用于整数关键码的散列方法。对于整数关键码,散列函数的设计有两个追求:1.把较长的整数关键码映射到较小的区间;2.尽可能的消除关键码和映射值之间明显的规律性。通俗的说,散列函数的映射关系越乱越好,越不清晰越好。


2.

3.

4.

5.

6.

7.

8.

9.

10.

def str_hash(s):
    h1=0
    for c in s:
        h1=h1 * 29 + ord(c)
    return h1
L={'JAN' , 'FEB' , 'MAR' , 'APR' , 'MAY' , 'JUN' , 'JUL' , 'AUG' , 'SEP' , 'OCT' , 'NOV' , 'DEC'  }
print([str_hash(s.title()) for s in L])    

结果就是: [58161, 68935, 65737, 58027, 72844, 65735, 65157, 67684, 69426, 60216, 61897, 67691]
后面工作就很简单了,略。

11.

12.

13.


第九章、排序

1.复习下面概念



2.

3.

4.

5.

6.

上一篇 下一篇

猜你喜欢

热点阅读