数据结构概述
>>什么是数据结构:数据存储的方式
>>数据结构实例:
>>内置数据结果:列表,元祖
#列表 可以取出来 ['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