基本数据类型 & 第十一章 散列表(python)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本数据类型 & 第十一章 散列表(python)相关的知识,希望对你有一定的参考价值。

更多的理论细节可以用《数据结构》严蔚敏 看几遍,数据结构很重要是实现算法的很大一部分

下面主要谈谈python什么实现

10.1 栈和队列

栈:后进先出LIFO

队列:先进先出FIFO

python 中使用list实现在这些功能

栈:压栈 append() 退栈   pop()

队列:   入队 append() 出队 pop(0)

栈:

>>> stack = list()
>>> stack.append(3)
>>> stack.append(2)
>>> stack.append(5)
>>> stack.append(1)
>>> stack
[3, 2, 5, 1]
>>> stack.pop()
1
>>> stack.pop()
5

队列:

>>> queue = list()
>>> queue.append(1)
>>> queue.append(2)
>>> queue.append(3)
>>> queue.append(4)
>>> queue.append(5)
>>> queue
[1, 2, 3, 4, 5]
>>> queue.pop(0)
1
>>> queue.pop(0)
2
>>> queue
[3, 4, 5]

链表&指针对象的数组实现

这些数据结构在python中就没有存在的价值, 用list都能轻松实现

有根树:

class Node:
    def __init__(self,data):
        self.left = None
        self.right = None
        self.parent = None
        self.data = data

给出一个结点代码,后面的二叉搜索树红黑树再具体讨论。

散列表(哈希表)

”散列表是普通数组概念的推广“一这句话来解释散列表再好不过了.

可以把数组看成散列函数为hash(x) = x % MAX (MAX比所以值都大) 得到的散列值 在这个下标下处理数据

优点:很好的期望值

难点:哈希函数的设计和冲突处理

下面引用别人的总结:

技术分享

技术分享

散列表(python 使用dict):

>>> #初始化
>>> a = dict(one = 1,two = 2)
>>> #访问
>>> a[one]
1
>>> #增加
>>> a[three] = 3
>>> a
{three: 3, one: 1, two: 2}
>>>

参考引用:

http://www.wutianqi.com/?cat=515&paged=4

http://blog.csdn.net/fxjtoday/article/details/6448083

以上是关于基本数据类型 & 第十一章 散列表(python)的主要内容,如果未能解决你的问题,请参考以下文章

数据库系统概念笔记——第十一章:索引与散列

马凯军201771010116《面向对象与程序设计Java》第十一周学习总结

第十一章 事件

《构建之法》阅读笔记第十&十一章

第十一章:持有对象

《Java编程思想》第十一章 持有对象