数据结构

什么是数据结构

  简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。

  比如:列表、集合与字典等都是一种数据结构。

  N.Wirth: “程序=数据结构+算法”

  1、列表:

    在其他编程语言中称为“数组”,是一种基本的数据结构类型。

    关于列表的问题:

      列表中元素使如何存储的?

      列表提供了哪些基本的操作?

      这些操作的时间复杂度是多少?

  2、栈

    栈(Stack)是一个数据集合,可以理解为只能在一端进行插入或删除操作的列表。

    栈的特点:后进先出(last-in, first-out)

    栈的概念:

      栈顶

      栈底

    栈的基本操作:

      进栈(压栈):push

      出栈:pop

      取栈顶:gettop

    栈的示例图:

         

 

 

  3、队列

    队列(Queue)是一个数据集合,仅允许在列表的一端进行插入,另一端进行删除。

    进行插入的一端称为队尾(rear),插入动作称为进队或入队

    进行删除的一端称为队头(front),删除动作称为出队

    队列的性质:先进先出(First-in, First-out)

    双向队列:队列的两端都允许进行进队和出队操作。

    单向队列示例图:

    

 

  4、链表

 

    链表中每一个元素都是一个对象,每个对象称为一个节点,包含有数据域key和指向下一个节点的指针next。通过各个节点之间的相互连接,最终串联成一个链表。

    节点定义:

      class Node(object):

        def __init__(self, item):

        self.item = item

        self.next = None

    单向链表插接元素示例图:

    

    双向链表:双链表中每个节点有两个指针:一个指向后面节点、一个指向前面节点。

    节点定义:

      class Node(object):

        def __init__(self,item = None)

        self.item = item

        self.next = None

        self.prior = None

    双向链表插接元素示例图:

    

 

posted @ 2018-07-24 19:14  Rabbit_Killer  阅读(190)  评论(0)    收藏  举报