数据结构简述

数据结构的引入

   数据结构是一个抽象概念,将其分类后得到程序设计语言中的基本类型。如:int,float,char等。数据元素之间不是独立的,存在特定的关系,这些关系便是结构。数据结构指数据对象中数据元素之间的关系。
   Python给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做Python的内置数据结构,比如列表、元组、字典。而有些数据组织方式,Python系统中没有直接定义,需要我们自己去定义这些数据的组织方式,这些数据组织方式称为Python的扩展数据结构,比如栈、队列等。

顺序表

   在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需创建这种元素组,用变量 它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。
   对于该需求,最简单的 解决方法便是将这样一组元素看成一个序列,用元素在序列里信息的位置和顺序,表示实际应用中的某种有意义的信息,或者表示数据之间的某种关系。
   这样的一组序列元素的组织形式,可将其抽象为线性表。一个线性表是某类元素的一个集合,记录着元素之间的一种顺序关系。线性表是最基本的数据结构之一,在实际程序中经常被用作更复杂的数据结构的实现基础。
   根据线性表的实际存储方式,分为两种实现模型:

  1. 顺序表,将元素顺序地放在一块连续的存储区里,元素间的顺序关系由他们的存储顺序自然表示。
  2. 链表,将元素存放在通过链接构造起来的一系列存储块中。

   Python中的listtuple两种类型采用了顺序表的实现技术,tuple是不可变类型,即不变的顺序表,因此不支持改变其内部状态的任何操作,而其他方面,则与list的性质类似。

顺序表的操作

增加元素
   如图所示,为顺序表增加新元素111的三种方式:

  a. 尾端加入元素,时间复杂度为 O(1)
  b. 非保序的加入元素(不常见),时间复杂度为 O(1)
  c. 保序的元素加入,时间复杂度为 O(n)

删除元素
  a. 删除表尾元素,时间复杂度为 O(1)
  b. 非保序的元素删除(不常见),时间复杂度为 O(1)
  c. 保序的元素删除,时间复杂度为 O(n)
  Pyhton标准类型list是一种元素个数可变的线性表,可以加入和删除元素,并在各种操作中维持已有元素的顺序(即保序)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值