python的数据结构

数据结构概述

>>什么是数据结构:数据存储的方式

>>数据结构实例:

 >>内置数据结果:列表,元祖

#列表  可以取出来
['abc','bcd','cde']
#元祖  不可取出来,元素不可以更改
('abc','bcd','cde')
#字典  按名称存取
{'one':'abc','two':'bcd','Three':'cde'}

>>数据结构与算法的关系

 数据结构是静态的,算法是动态的,数据结构是算法的基础,相同的数据结构运用不同的算法有不同的效率,两者相辅相成

数据结构——栈

>>什么是栈:

 是一种数据结构,不是内置数据结构。相当于一端开口一端封闭的容器,只能对新进入的数据进行操作

>>栈的实现

 

class St():
    def __init__(st,num):
        st.stack=[]
        st.num=num
        st.top=-1
    def push(st,con):
        if st.full():
            print('st is full!!')
        else:
            st.stack.append(con)
            st.top=st.top+1
    def out(st):
        if st.empty():
            print('stack is empty')
        else:
            st.top=st.top=-1
    def full(st):
        if st.top==st.num:
            return 'y'
        else:
            return 'n'
    def empty(st):
        if st.tip==-1:
            return 'y'
        else:
            return 'n'

 

数据结构——队列

>>什么是队列:

 是一种数据结构,不是内置数据结构。相当于两端都开的容器,一端只能进行插入操作(队尾),一端只能进行删除操作(对首)

>>队列的实现:

 

class Qu():
    def __init__(qu,num):#初始化
        qu.que=[]  #列表声明
        qu.num=num  #队列容量
        qu.head=-1  #队首位置
        qu.tail=-1  #队尾位置
    def empty(qu):  #判断队列是否为空
        if qu.head==qu.tail:  #如果队首位置等于队尾位置
            return 'y'      #返回y表示队列为空
        else:
            return 'n'
    def full(qu):  #判断队列是否满
        if qu.tail-qu.head+1==qu.num:  #如果队尾位置减去队首位置+1=队列容量
            return 'y'           #返回y表示队列为满
        else:
            return 'n'
    def enqu(qu,con):
        if qu.full():
            print('qu is full!!')
        else:
            qu.que.append(con)
            qu.tail=qu.tail+1
    def out(qu):
        if qu.empty():
            print('qu is empty!')
        else:
            qu.head=qu.head+1

 

posted @ 2016-10-31 14:34  矮人er  阅读(239)  评论(0编辑  收藏  举报