• 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();
  • 相关阅读:
    ceph之image(转)
    CEPH集群RBD快照创建、恢复、删除、克隆(转)
    java操作ceph之rbd基本操作
    Kubernetes (1.6) 中的存储类及其动态供给
    Linux 网络编程详解九
    Linux 网络编程详解八
    Linux 网络编程详解七(并发僵尸进程处理)
    Linux 网络编程详解六(多进程服务器僵尸进程解决方案)
    Linux 网络编程详解五(TCP/IP协议粘包解决方案二)
    C语言 memset函数盲点
  • 原文地址:https://www.cnblogs.com/itliucheng/p/5033747.html
Copyright © 2020-2023  润新知