zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    点滴
    Type.GetType() 返回null的解决办法
    DDD中的实体
    开启博客之路
    Pytorch框架学习(1)张量操作
    GitHub学习之路1
    JavaScript学习之路1
    Java&Eclipse&Maven的折腾
    Ubuntu学习之路1
    Windos下的一些命令集合
  • 原文地址:https://www.cnblogs.com/itliucheng/p/5033747.html
Copyright © 2011-2022 走看看