python数据结构
python数据结构
数据组织在一起的结构叫做数据结构 其中包含元组(不可变集合)列表(可变集合)字典(键值对)等
元组("苹果","橘子","香蕉")
列表["苹果","橘子","香蕉"]
字典{"1":"苹果","2":"橘子","3":"香蕉"}
数据结构的栈
栈是一种数据结构,首先栈相当于一端开口一端封闭的容器,数据A可以存储在栈里面,把数据A移动到栈里面的
过程叫做进栈,也叫作压栈,入栈,数据A进入到栈里面之后,就到了栈顶,同时占了栈的一个位置,当再进入一个数据B
的时候,也就是再将一个数据入栈的时候,新的数据就占据了栈顶的位置,原来的数据就被新的数据压到了栈顶
的下一个位置。栈只能对其栈顶的数据进行操作,所以这个时候原来的数据就不能操作,此时只能对新数据进行操作,
可以将其出栈或删除等,等数据B出栈后,方可对A操作
python的入栈事例
stack.py的程序
class Stack(): def __init__(self,size):#相当于java的构造方法,self是python类必传值 self.stack=[]; self.size=size; self.top=-1; def push(self,content): if self.Full(): print("Stack is Full") else: self.stack.append(content) self.top=st.top+1 def pop(self): if self.Empty(): print ("empty") else: self.stack.pop(); self.top=self.top-1 def Full(self): if self.top==self.size-1: return True else: return False def Empty(self): if self.top==-1: return True else: return False
使用栈
s=Stack(20); for i in range(3): s.push(i); s.pop() print s.Empty();
队列
队列也是一种数据结构,首先队列相当于两端都开的容器,但是一端只能进行删除操作
不能进行插入操作,而另一端只能进行插入操作而不能进行删除操作,进行插入操作的这段叫做队尾
进行删除操作的这端叫做队首。数据是从队尾进队首出
queue.py的程序
class Queue(): def __init__(self,size): self.size=size; self.front=-1; self.rear=-1; self.queue=[]; def enqueue(self,ele): #入队操作 if self.isfull(): raise exception("queue is full"); else: self.queue.append(ele); self.rear=self.rear+1; def dequeue(self): #出队操作 if self.isempty(): raise exception("queue is empty"); else: self.front=self.front+1; return self.queue[self.front]; def isfull(self): return self.rear-self.front+1==self.size; def isempty(self): return self.front==self.rear;
使用队列
q=Queue(10); for i in range(3): q.enqueue(i); print q.dequeue(); print q.isempty();