Python起步之数据结构和算法

来源:互联网 发布:java经典书籍 编辑:程序博客网 时间:2024/06/05 16:10

这里说的Python数据结构和算法主要包括以下几个内容:

  1)  用Python操作表    2)用Python操作栈    3)用Python操作队列   4)用Python操作树  5)用Python操作图  6)用Python查找  7)用Python进行排序

下面逐个来阐述:

    1、表是最基本的一种数据结构,在Python中直接提供了一种“创建”表的原材料,或者说是直接提供了表这种数据结构那就是列表,在C语言中表(线性表和链表)都提供了遍历,查找,添加和删除等操作,在Python中,对于列表的操作同样提供了这些函数。list.append()追加元素,list.insert()向列表中插入某个元素,list.pop()删除列表的最后一个元素。list.remove()删除列表中元素等等

    2、栈可以看成是同一位置上的插入和删除操作的表,这个位置就是栈顶。栈的最基本操作就是进栈和出栈操作。栈可以看做是一个容器。遵循先进后出的原则。

(部分代码如下:)

# pystack.pyclass PyStack:    def _init_(self,size = 20):#初始化栈        self.stack = []#创建一个空栈        self.size = size #设置栈的大小,理论上是可以不设置,个人认为不设置的操作代码会更简洁        self.top = -1#初始化栈顶元素的位置    def setSize(self,size):#设置栈的大小,这样的会有可能浪费空间,因为数据的多少,事先一般是不知道,                        #增加程序的局限性,与不设置大小相比,灵活性和空间利用率都要低        self.size = size    def isFull(self):#判断是否栈满        if (self.top == self.size - 1):            return True        else:            return False    def isEmpty(self):#判断是否栈空        if self.top == -1:            return True        else:            return False    def setEmpty(self):#置空栈        self.stack = []    def readTop(self):        return self.stack[self.top - 1]        def push(self,element):        if not self.isFull():            self.stack[self.top] =  elemment            self.top = self.top + 1        else:            print('栈已满!')                def pop(self):        if not self.isEmpty():            element = self.stack[self.top - 1]            self.top =self.top - 1            return element        else:            print('栈已空')            return None    def StackException(Exception):        def _init_(self,data):            self.data = data        def _str_(self):            return self.data        




原创粉丝点击