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();

 

posted on 2015-12-09 18:24  itliucheng  阅读(185)  评论(0编辑  收藏  举报