数据结构 | 栈-队列-链表

作者: 水土七口刀 | 来源:发表于2020-03-16 21:16 被阅读0次

    定义:

    一个由若干元素组成的有序集合,只能从一端进行添加和删除操作,遵循“后进先出”原则

    操作:

    • Stack()创建一个新的空栈。它不需要参数,并返回一个空栈。
    • Push(item)将新项添加到堆栈的顶部。它需要参数 item 并且没有返回值。
    • pop()从栈顶删除项目。它不需要参数,返回 item。栈被修改。
    • peek()返回栈顶的项,不删除它。它不需要参数。堆栈不被修改。
    • isEmpty()测试看栈是否为空。它不需要参数,返回一个布尔值。
    • size()返回栈的项目数。它不需要参数,返回一个整数。

    队列

    定义:

    一个由若干元素组成的有序集合,只能从一端(队尾)进行添加和另一端(队首)进行删除操作,遵循“先进先出”原则

    操作:

    • Queue()创建一个空队列对象,无需参数,返回空的队列;
    • enqueue(item)将数据项添加到队尾,无返回值;
    • dequeue()从队首移除数据项,无需参数,返回值为队首数据项;
    • isEmpty()测试是否为空队列,无需参数,返回值为布尔值;
    • size()返回队列中的数据项的个数,无需参数。

    双端队列

    定义:

    一个由若干元素组成的有序集合,可以从两端对序列进行添加和删除操作,是栈和队列的结合体,没有明确规则,需要人为制定。

    操作:

    • Deque() 创建一个空双端队列,无参数,返回值为 Deque 对象。
    • addFront(item) 在队首插入一个元素,参数为待插入元素,无返回值。
    • addRear(item) 在队尾插入一个元素,参数为待插入元素,无返回值
    • removeFront() 在队首移除一个元素,无参数,返回值为该元素。双端队列会被改变。
    • removeRear() 在队尾移除一个元素,无参数,返回值为该元素。双端队列会被改变。
    • isEmpty() 判断双端队列是否为空,无参数,返回布尔值。
    • size() 返回双端队列中数据项的个数,无参数,返回值为整型数值。

    链表

    定义:

    链表是一个无序序列,从外部指向的第一项通常被称为链表的头,每个元素的相对位置可以通过简单的链接从上一个项目到下一个来确定。

    组成单元:

    节点:节点必须包含列表元素本身。我们将这称为该节点的“ 数据区”;此外,每个节点必须保持到下一个节点的引用。

    #python节点类定义
    class Node:
        def __init__(self,initdata):
            self.data = initdata
            self.next = None
        def getData(self):
            return self.data
        def getNext(self):
            return self.next
        def setData(self,newdata):
            self.data = newdata
        def setNext(self,newnext):
            self.next = newnex
    

    相关文章

      网友评论

        本文标题:数据结构 | 栈-队列-链表

        本文链接:https://www.haomeiwen.com/subject/beboehtx.html