python数据结构

一、数据结构概述

  数据组织在一起的结构叫做数据结构。

  python中的数据结构:列表,元组,字典,队列,栈,树等等。

  python内置数据结构:列表、元组等。
  python扩展数据结构:栈,队列等。
  数据结构式静态的,算法是动态的。

  数据结构示例:

 1 #coding=utf-8
 2 '''
 3 Created on 2016��4��20��
 4
 5 @author: Administrator
 6 '''
 7 #python内置数据结构,元组、列表、字典
 8 #将三个物品"apple"、"orange"、"pear"组织起来
 9 #存储方式一,可以取出来(列表)
10 a=["apple","orange","pear"]
11 print a
12 #存储方式二,不可以取出来,不可以改变(元组)
13 b=("apple","orange","pear")
14 print b
15 #存储方式三,不仅按顺序存储,存储空间还有名字
16 c={"sam":"apple","jac":"orage","mating":"pear"}
17 print c

二、Python 常见数据结构-栈

  栈是一端开口,一端开放的容器。

  代码示例: 

 1 #coding=utf-8
 2 #栈
 3 class Stack:
 4     #初始化栈
 5     def __init__(self,size):#栈的主体,与栈的容量
 6         self.stack=[]#声明栈的属性,此时栈的属性为列表
 7         self.size=size#传递栈的容量
 8         self.top=-1#初始化栈顶的位置,有数据为0,没有数据为-1
 9
10     #入栈,先判断栈是否已经满了
11     def push(self,content):
12         if self.Full():
13             print "Stack if full!"
14         else:
15             self.stack.append(content)#数据加入栈中,append()增加内容
16             self.top=self.top+1#修改栈顶指针
17
18     #出栈
19     def out(self):
20         if self.Empty():#判断栈是否为空
21             print "Stack is Empty!"
22         else:
23             self.top=self.top-1#栈顶指针减一
24
25     def Full(self):
26         if self.top==self.size:#栈顶指针定于栈的大小
27             #print"Stack is Empty!"
28             return True
29         else:
30             return False
31
32     def Empty(self):
33         if self.top==-1:
34             return True
35         else:
36             return False
37     def printStack(self):
38         i = self.top
39         print "amount of elements:{0}".format(self.top + 1)
40         while i >= 0:
41             print self.stack[i]
42             print "--"
43             i -= 1
44 '''
45 st=Stack(7)
46 Stack.Empty(st)
47 Stack.push(st,"hello")
48 Stack.Empty(st)
49 Stack.Full(st)
50 Stack.push(st,"7")
51 Stack.printStack(st)
52 Stack.out(st)
53 Stack.out(st)
54 Stack.Empty(st)
55 '''
56 st=Stack(3)
57 st.printStack()
58 st.push(1)
59 st.printStack()
60 st.push(2)
61 st.printStack()
62 st.push(3)
63 st.printStack()
64 st.push(4)
65 st.printStack()
66 st.Full()
67 #st.push(5)
68 #st.printStack()
69
70             

  运行结果如图所示:

              

  运行结果解释:

  栈的空间是4,因为第一个数据是0,空间是3=1=4

  push()5个才出现是因为4的时候没有再次进行判断。
  Full()加上print()再执行就有显示栈满。
  所以栈的空间为4尔不是5.

三、Python 常见数据结构-队列

  队列在队尾插入,队首删除。

  代码示例:

 1 #coding=utf-8
 2 #队列的实现
 3 class Queue1:
 4
 5     #初始化队列
 6     def __init__(self,size):
 7         self.queue=[]
 8         self.size=size
 9         self.head=-1
10         self.tail=-1
11
12     def enQueue(self,contest):
13         if self.Full():
14             print "Queue if full!"
15         else:
16             self.queue.append(contest)
17             self.tail=self.tail+1
18     def outQueue(self):
19         if self.Empty():
20             print "Queue is Empty"
21         else:
22             self.head=self.head+1
23
24     def Empty(self):
25         if self.tail==self.head:
26             return True
27         else:
28             return False
29
30     def Full(self):
31         if (self.tail-self.head)==self.size:
32             print "Queue if full"
33             return True
34         else:
35             return False
36
37 qz=Queue1(3)
38 qz.enQueue(1)
39 qz.enQueue(2)
40 qz.enQueue(3)
41 qz.Empty()
42 qz.enQueue(4)

  运行结果如下图:

2016-04-21    02:10:26

转载于:https://www.cnblogs.com/chance88/p/5415304.html

python入门(七)相关推荐

  1. Python入门七:安装支持WinXp运行的Python及环境配置

    之前安装的Python开发的程序无法在WinXp上运行,这里记录下安装支持Xp系统的Python及环境配置 之前程序在Xp上运行的错误: 无法定位程序输入点 GetFinalPathNameByHan ...

  2. python入门(六)——python数据容器

    系列文章目录 python入门(一)--你好python python入门(二)--python基础语法 python入门(三)--python判断语句 python入门(四)--python循环语句 ...

  3. python入门(一)——你好python

    系列文章目录 python入门(二)--python基础语法 python入门(三)--python判断语句 python入门(四)--python循环语句 python入门(五)--python函数 ...

  4. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木

    学习目标 了解魔法积木的使用--自定义函数 了解魔法积木的结果反馈--自定义函数返回值 了解魔法积木的原料传递--自定义函数传参 了解魔法积木的类型分类--类与对象 推荐 1.<备受好评的看得懂 ...

  5. 蘑菇云「行空板Python入门教程」第七课:舒尔特方格小游戏

    注意力是一切学习的根本,是大脑进行感知.学习.思维等认知活动的基本条件.然而,无论是孩子还是成年人,我们常常会因开小差.注意力无法集中而困扰.此时,找到一个合适的方法来训练我们的注意力势在必行. 舒尔 ...

  6. python入门到精通需要学多久-史上最详细python学习路线-从入门到精通,只需5个月时间...

    针对Python的初学者,从无到有的Python语言如何入门,主要包括了:Python的简介,如何下载Python,如何安装Python,如何使用终端.Shell,IDE等各种开发环境进行Python ...

  7. python入门只需20分钟-史上最详细python学习路线-从入门到精通,只需5个月时间...

    针对Python的初学者,从无到有的Python语言如何入门,主要包括了:Python的简介,如何下载Python,如何安装Python,如何使用终端.Shell,IDE等各种开发环境进行Python ...

  8. 没有任何基础的可以学python吗-对没有编程基础的人来说,直接学Python入门IT合适吗?...

    原标题:对没有编程基础的人来说,直接学Python入门IT合适吗? 对于0基础的人,直接学 Python 编程合适吗? 小编只能说非常合适,因为在目前的编程语言中,Python的抽象程度是最高的,是最 ...

  9. python入门编程-对没有编程基础的人来说,直接学Python入门IT合适吗?

    原标题:对没有编程基础的人来说,直接学Python入门IT合适吗? 对于0基础的人,直接学 Python 编程合适吗? 小编只能说非常合适,因为在目前的编程语言中,Python的抽象程度是最高的,是最 ...

最新文章

  1. 马云:腾讯不是阿里要打败的对手,是同为社会创造价值的伴侣
  2. [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:MVC程序中实体框架的连接恢复和命令拦截...
  3. 文章 图片 PHP保存,关于文章图片储存
  4. 如何用python画一朵玫瑰花-使用Python画一朵美丽的玫瑰花
  5. python3.7安装numpy模块-Python3.7模块numpy
  6. 转载:Linux查看设置系统时区
  7. 云原生时代 RocketMQ 运维管控的利器 - RocketMQ Operator
  8. 数据库设计注意事项和原则
  9. Spring基于Annotation装配Bean
  10. 学习node js 之微信公众帐号接口开发 准备工作
  11. php mysql完全学习手册 下载_PHP+MySQL完全学习手册
  12. UITableViewCell高度自适应变化
  13. C语言二级题库带答案+解析
  14. dosbox详细安装级及使用
  15. 新手玩荔枝派 f1c100s nano折腾笔记(四)
  16. 【个人博客网页模板】
  17. rtthread学习之(3)——STM32系列BSP外设驱动使用教程
  18. 包装严重的 IT 圈,作为面试官,是如何甄别应聘者呢?
  19. 阿里云Docker仓库
  20. Keil:Undefined symbol ......(referred from......)解决

热门文章

  1. 全栈必备Linux 基础
  2. 好技术领导和差技术领导区别在哪里
  3. 分布式服务框架 Zookeeper — 管理分布式环境中的数据
  4. 新的旅程:NodeJS - 环境篇
  5. Java并发工具类(闭锁CountDownLatch)
  6. 微服务,微架构[五]之springboot读取properties文件
  7. RabbitMQ 一二事(2) - 工作队列使用
  8. 关于UIView的userInteractionEnabled属性
  9. 十进制与二进制间的相互转换
  10. php中this的含义